Zum Inhalt springen

Lebenszeiten

Welche Art von Programmierfehler sollen Lebenszeiten verhindern?

Lebenszeiten helfen zu identifizieren, wie lange ein Objekt „lebt“ und ob Referenzen auf dieses Objekt das Objekt selbst überdauern.


fn shortest<'a, 'b>(x: &'a str, y: &'b str) -> &'a str {
if x.len() < y.len() {
x
} else {
y
}
}
fn main() {
println!("{}", shortest("hello", "rust"));
}

Wenn die Typensignatur besagt, dass die Funktion eine Referenz mit der Lebenszeit 'a zurückgeben muss, dann wäre es ungültig, eine Referenz mit einer anderen Lebenszeit 'b zurückzugeben, d.h. y hier.