I saw the following line in my code, and I am not sure what it does as I haven't encountered the @
operator before.
if let e@Err(_) = changed {
...
}
Can this line be written without the @
operator, what would that look like?
It's a way to bind the matched value of a pattern to a variable(using the syntax: variable @ subpattern
).
Example:
let x = 2;
match x {
e @ 1 ..= 5 => println!("got a range element {}", e),
_ => println!("anything"),
}