</>
Plan du cours — 13/66

Durées de vie (lifetimes)

Débutant

Une annotation de lifetime dit au compilateur combien de temps une référence reste valide. Elle est nécessaire quand il ne peut pas le deviner.

// Le résultat vit au plus aussi longtemps que les deux entrées
fn le_plus_long<'a>(a: &'a str, b: &'a str) -> &'a str {
    if a.len() > b.len() { a } else { b }
}

// Une struct qui contient une référence doit déclarer sa durée de vie
struct Extrait<'a> {
    partie: &'a str,
}

Dans la majorité des cas, l'élision de lifetimes s'en charge : vous n'avez à les écrire que lorsque le compilateur le demande.