Einführung
In diesem Lab untersuchen wir die Angabe von Lebensdauern in Trait-Methoden, was ähnlich zu Funktionen ist. Dabei muss auch in der impl-Blöcke die Lebensdauer angegeben werden. Der bereitgestellte Code zeigt ein Beispiel, in dem eine Struktur Borrowed eine Lebensdauerangabe hat, und das Default-Trait für sie mit der annotierten Lebensdauer implementiert wird. Die Hauptfunktion erstellt dann eine Instanz von Borrowed mit der Methode Default::default(), was die Verwendung von Lebensdauern in Trait-Methoden zeigt.
Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie
main.rsverwenden und es mitrustc main.rs &&./mainkompilieren und ausführen.
Traits
Die Angabe von Lebensdauern in Trait-Methoden ist im Grunde ähnlich wie bei Funktionen. Beachten Sie, dass impl ebenfalls eine Angabe von Lebensdauern haben kann.
// Eine Struktur mit Angabe von Lebensdauern.
#[derive(Debug)]
struct Borrowed<'a> {
x: &'a i32,
}
// Lebensdauern für impl angeben.
impl<'a> Default for Borrowed<'a> {
fn default() -> Self {
Self {
x: &10,
}
}
}
fn main() {
let b: Borrowed = Default::default();
println!("b ist {:?}", b);
}
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Traits-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.