if let expressions

If you want to match a value against a pattern, you can use if let:

  1. fn main() {
  2. let arg = std::env::args().next();
  3. if let Some(value) = arg {
  4. println!("Program name: {value}");
  5. } else {
  6. println!("Missing name?");
  7. }
  8. }

See pattern matching for more details on patterns in Rust.

  • if let can be more concise than match, 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 with Option.
  • Unlike match, if let does not support guard clauses for pattern matching.