mut foo: Tозначає, що у вас є змінна з назвою fooa T. Вам дозволено змінити, до чого відноситься змінна :
let mut val1 = 2;
val1 = 3;
let val2 = 2;
val2 = 3;
Це також дозволяє вам змінювати поля структури, якою ви володієте:
struct Monster { health: u8 }
let mut orc = Monster { health: 93 };
orc.health -= 54;
let goblin = Monster { health: 28 };
goblin.health += 10;
foo: &mut Tозначає, що у вас є змінна, яка посилається на ( &) значення, і вам дозволено змінити ( mut) вказане значення (включаючи поля, якщо це структура):
let val1 = &mut 2;
*val1 = 3;
let val2 = &2;
*val2 = 3;
Зверніть увагу, що це &mutмає сенс лише за допомогою посилання - foo: mut Tнеприпустимий синтаксис. Ви також можете поєднати два кваліфікатори ( let mut a: &mut T), коли це має сенс.
constпротиpointeeconst .