Zum Inhalt springen

Lebenszeiten

Welche Art von Programmierfehler sollen Lebenszeiten verhindern?

Erklärung anzeigen

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"));
}
Erklärung anzeigen

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.