Заморозка

Когда данные неизменяемо привязаны к тому же имени, они замораживаются. Замороженные данные не могут быть изменены до тех пор, пока неизменяемая привязка не выйдет из области видимости:

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;
}