rust / beginner
Snippet
Ownership verstehen
Rust verwendet ein Ownership-System, um Speicher effizient ohne Garbage Collection zu verwalten. Wenn Sie s1 an s2 zuweisen, wird das Eigentum an den Daten auf s2 übertragen, und s1 ist nicht mehr gültig. Dies verhindert Doppel-Freiigaben-Fehler. Für schreibgeschützten Zugriff können Sie eine Referenz mit & leihen, was mehrere Referenzen ohne Eigentumsübertragung ermöglicht.
snippet.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
fn main() {let s1 = String::from("hello");let s2 = s1;// println!("{}", s1); // Error: s1 is no longer validprintln!("{}", s2);let s3 = String::from("world");let s4 = &s3;println!("{}", s3); // s3 is still valid, s4 just borrows itprintln!("{}", s4);}
Erklärung
1
let s1 = String::from("hello");
Erstellt einen String, der s1 gehört
2
let s2 = s1;
Ownership wird an s2 übertragen, s1 ist jetzt ungültig
3
let s4 = &s3;
Erstellt eine Leihreferenz, s4 besitzt die Daten nicht
4
println!("{}", s3);
s3 ist noch gültig, da nur eine Referenz geliehen wurde