Durées de vie (lifetimes)
DébutantUne 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.