match — exhaustive pattern matching (all cases). if let — single pattern match.
match:
1let x = Some(5);2match x {3 Some(n) if n > 10 => println!("Big: {}", n),4 Some(n) => println!("Small: {}", n),5 None => println!("Nothing"),6}78let result = match x {9 Some(n) => n * 2,10 None => 0,11};
if let:
else.1if let Some(value) = x {2 println!("Got: {}", value);3} else {4 println!("Nothing");5}
When to use:
match for multi-case pattern matching.if let for single-case checks.if let for simple fallbacks.Common mistakes:
match.if let when multiple cases needed.else when needed.