Das Herzstück von Rust: Jeder Wert hat genau einen Besitzer. Wird der Besitzer ungültig, wird der Wert freigegeben, ganz ohne Garbage Collector. Weist du einen String einer anderen Variable zu, zieht der Besitz um (move), die alte ist danach ungültig.
Mit Referenzen (&wert) leihst du einen Wert nur aus. Es darf entweder viele lesende (&) oder genau eine veränderliche (&mut) Referenz geben.
let a = String::from("Hallo");
let b = a; // Besitz zieht um
// println!("{a}"); // Fehler: a ist nicht mehr gültig
println!("{b}");
fn laenge(s: &String) -> usize { s.len() } // leihen
let text = String::from("Rust");
println!("{}", laenge(&text)); // text bleibt gültig
let mut m = String::from("x");
let r = &mut m;
r.push('y');Merke
Jeder Wert hat genau einen Besitzer
Zuweisen verschiebt den Besitz (move)
&leiht lesend,&mutleiht veränderlich
Aufgabe
Schreibe eine Funktion, die einen Text ausleiht und seine Zeichenzahl zurückgibt.