Option : l'absence de valeur
IntermédiaireRust n'a pas de null. On utilise Option<T> : Some(valeur) ou None.
fn trouver(nom: &str) -> Option<u32> {
if nom == "Alice" { Some(30) } else { None }
}
// match complet
match trouver("Alice") {
Some(age) => println!("{age} ans"),
None => println!("introuvable"),
}
// if let : quand un seul cas vous intéresse
if let Some(age) = trouver("Alice") {
println!("{age}");
}
// Combinateurs
let age = trouver("Bob").unwrap_or(0);
let doublé = trouver("Alice").map(|a| a * 2);
let obligatoire = trouver("Alice").expect("Alice doit exister"); // panique sinon
// let-else : sortir tôt si le motif ne correspond pas
let Some(age) = trouver("Bob") else { return; };