rust / intermediate
Snippet
Lebensdauern in Struktendefinitionen
Lebensdauern stellen sicher, dass Referenzen in Structs nicht länger leben als die Daten, auf die sie verweisen. Die Struct enthält eine Referenz mit Lebensdauer 'a, die mindestens so lange sein muss wie die Struct-Instanz selbst. Dies verhindert hängende Referenzen zur Kompilierzeit.
snippet.rs
1
2
3
4
5
6
7
8
9
struct Excerpt<'a> {part: &'a str,}fn main() {let text = String::from("Hello world");let excerpt = Excerpt { part: &text[6..11] };println!("Excerpt: {}", excerpt.part);}
Erklärung
1
struct Excerpt<'a> {
Struct-Definition mit Lebensdauerparameter 'a
2
part: &'a str,
Referenz auf str, die mindestens so lange wie 'a leben muss
3
let excerpt = Excerpt { part: &text[6..11] };
Erstellt Instanz - excerpt leiht von text, Lebensdauern sind verbunden