mut foo: T
bedeutet, dass Sie eine Variable namens foo
a haben T
. Sie können ändern, worauf sich die Variable bezieht :
let mut val1 = 2;
val1 = 3;
let val2 = 2;
val2 = 3;
Auf diese Weise können Sie auch Felder einer Struktur ändern, die Sie besitzen:
struct Monster { health: u8 }
let mut orc = Monster { health: 93 };
orc.health -= 54;
let goblin = Monster { health: 28 };
goblin.health += 10;
foo: &mut T
bedeutet, dass Sie eine Variable haben, die auf ( &
) einen Wert verweist, und Sie dürfen ( mut
) den referenzierten Wert ändern (einschließlich Felder, wenn es sich um eine Struktur handelt):
let val1 = &mut 2;
*val1 = 3;
let val2 = &2;
*val2 = 3;
Beachten Sie, dass dies &mut
nur mit einer Referenz sinnvoll foo: mut T
ist - keine gültige Syntax. Sie können die beiden Qualifikationsmerkmale ( let mut a: &mut T
) auch kombinieren , wenn dies sinnvoll ist.
const
undpointee
Konstante .