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.
- For the similar use case consider demonstrating a newly stabilized
- A common usage is handling
Some
values when working withOption
. - Unlike
match
,if let
does not support guard clauses for pattern matching.