Введение
В этом лабе концепция заморозки объясняется как состояние, когда данные связываются одним и тем же именем неизменяемым образом, не позволяя их изменить, пока неизменяемая привязка не выйдет из области видимости.
Примечание: Если в лабе не указано имя файла, вы можете использовать любое имя файла, которое хотите. Например, вы можете использовать
main.rs, скомпилировать и запустить его с помощьюrustc main.rs &&./main.
Заморозка
Когда данные связываются одним и тем же именем неизменяемым образом, они также замораживаются. Замороженные данные нельзя изменить, пока неизменяемая привязка не выйдет из области видимости:
fn main() {
let mut _mutable_integer = 7i32;
{
// Shadowing by immutable `_mutable_integer`
let _mutable_integer = _mutable_integer;
// Ошибка! `_mutable_integer` заморожено в этой области видимости
_mutable_integer = 50;
// FIXME ^ Comment out this line
// `_mutable_integer` выходит из области видимости
}
// Ок! `_mutable_integer` не заморожено в этой области видимости
_mutable_integer = 3;
}
Резюме
Поздравляем! Вы завершили лабу по Заморозке. Вы можете практиковаться в более лабах в LabEx, чтобы улучшить свои навыки.