Strukturen
Struktur-Update-Syntax
Abschnitt betitelt „Struktur-Update-Syntax“struct Point { x: i32, y: i32,}
fn main() { let mut a = Point { x: 1, y: 2 }; a.x += 1; let b = Point { y: 1, ..a }; a.x += 1; println!("{}", b.x);}Die ..a-Syntax kopiert jedes Feld von a nach b (außer y), sodass die zweite Anweisung a.x += 1 keine Auswirkung auf b hat.
Mutable Feld-Referenzen
Abschnitt betitelt „Mutable Feld-Referenzen“struct Point { x: i32, y: i32,}
fn main() { let mut p = Point { x: 1, y: 2 }; let x = &mut p.x; let y = &mut p.y; *x += 1; *y += 1; println!("{} {}", p.x, p.y);}Rust erkennt, dass .x sich auf ein anderes Objekt als .y bezieht, daher ist es gültig, gleichzeitige mutable Referenzen auf beide Felder zu nehmen.