</>
Plan du cours — 17/66

Option : l'absence de valeur

Intermédiaire

Rust 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; };