capypad
0 Tage Serie
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
rust
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