Avatar ·

Was bedeuten Bezeichner mit einfachem Anführungszeichen (') in Rust?

Ich habe angefangen, Rust zu lernen, und sehe oft seltsame Bezeichner im Code, die mit einem einfachen Anführungszeichen beginnen, wie `'a`, `'b` oder `'static`. Ich verstehe, dass das keine Strings oder Zeichen sind, weil sie in spitzen Klammern nach dem Funktionsnamen oder in der Definition von Structs auftauchen. Hier ist ein Beispiel, das ich in der Dokumentation gefunden habe: ```rust fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { if x.len() > y.len() { x } else { y } } ``` Was ist `'a`? Warum wird es benötigt? Und was bedeutet `'static`, das ich in einigen Beispielen gesehen habe? Mir scheint, dass Rust diese Bezeichnungen für etwas im Zusammenhang mit der Speicherprüfung verwendet, aber ich kann die Logik nicht verstehen. Bitte erklären Sie es einfach, wie für einen Anfänger. <<>>

Was sind Lebensdauern (lifetimes) in Rust?

Bezeichner mit einfachem Anführungszeichen, wie 'a, 'b oder 'static, werden Lebensdauer-Annotationen (lifetime annotations) genannt. Sie beeinflussen nicht, wie lange etwas lebt,