if let expressions
If you want to match a value against a pattern, you can use if let
:
fn main() {
let arg = std::env::args().next();
if let Some(value) = arg {
println!("Program name: {value}");
} else {
println!("Missing name?");
}
}
See pattern matching for more details on patterns in Rust.
if let
can be more concise thanmatch
, e.g., when only one case is interesting. In contrast,match
requires all branches to be covered.- For the similar use case consider demonstrating a newly stabilized let else feature.
- A common usage is handling
Some
values when working withOption
. - Unlike
match
,if let
does not support guard clauses for pattern matching.