fn main() {
let some_value = Some(42);
// Instead of full match:
if let Some(n) = some_value {
println!("got {n}");
} else {
println!("nothing");
}
// Drain a stack until empty
let mut stack = vec![1, 2, 3, 4, 5];
while let Some(top) = stack.pop() {
println!("popped {top}");
}
// Combined with let-else (Rust 1.65+) for early-return shape
fn parse_id(s: &str) -> Result<u64, String> {
let Ok(n) = s.parse::<u64>() else {
return Err(format!("not a number: {s}"));
};
Ok(n + 1)
}
println!("{:?}", parse_id("9")); // Ok(10)
println!("{:?}", parse_id("xyz")); // Err("not a number: xyz")
}
Create a free account and build your private vault. Share publicly whenever you want.