rust / beginner
Snippet
Ownership verstehen: Move-Semantik in Rust
In Rust ist Ownership ein einzigartiges Konzept, das Speicher ohne Garbage Collection verwaltet. Wenn du s1 an s2 zuweist, wird das Ownership der Heap-Daten von s1 zu s2 'verschoben'. Nach diesem Move ist s1 nicht mehr gültig. Dies verhindert Double-Free-Fehler und sorgt für Speichersicherheit zur Kompilierzeit.
snippet.rs
1
2
3
4
5
6
fn main() {let s1 = String::from("hello");let s2 = s1;// println!("{}", s1); // This would cause a compile error!println!("{}", s2); // This works fine}
Erklärung
1
let s1 = String::from("hello");
Erstellt einen String auf dem Heap mit dem Wert 'hello'
2
let s2 = s1;
Das Ownership der Heap-Daten wandert von s1 zu s2
3
println!("{}", s2);
s2 ist gültig und kann auf die Daten zugreifen