Заморозка
Когда данные неизменяемо привязаны к тому же имени, они замораживаются. Замороженные данные не могут быть изменены до тех пор, пока неизменяемая привязка не выйдет из области видимости:
fn main() {
let mut _mutable_integer = 7i32;
{
// Неизменяемое затенение `_mutable_integer`
let _mutable_integer = _mutable_integer;
// Ошибка! `_mutable_integer` заморожена в этой области
_mutable_integer = 50;
// ИСПРАВЬТЕ ^ Закомментируйте эту строку
// `_mutable_integer` выходит из области видимости
}
// Ok! `_mutable_integer` не заморожена в этой области
_mutable_integer = 3;
}