Затенение имён
Затенение имён (shadowing) - это механизм в Rust,
позволяющий объявить новую переменную с тем же именем,
что и у уже существующей переменной. Новая переменная
«затеняет» старую, и все последующие обращения по этому
имени будут указывать на новую переменную. При этом
старая переменная не удаляется из памяти, но становится
недоступной по имени. Затенение выполняется с помощью
ключевого слова let.
Синтаксис
let name = value1;
let name = value2;
Пример
Давайте объявим переменную x, а затем затеням её
новым значением:
fn main()
{
let x = 5;
let x = 10;
println!("{}", x);
}
Результат выполнения кода:
10
Пример
Затенение позволяет изменить тип переменной. Давайте объявим строку, а затем затеням её числом:
fn main()
{
let val = "abcde";
let val = val.len();
println!("{}", val);
}
Результат выполнения кода:
5
Пример
Затенение в внутренней области видимости действует только внутри неё. Давайте проверим это:
fn main()
{
let x = 1;
{
let x = 2;
println!("{}", x);
}
println!("{}", x);
}
Результат выполнения кода:
2
1
Смотрите также
-
раздел
Владение,
который описывает систему владения значениями в Rust -
раздел
Перемещение,
который описывает перемещение владения между переменными -
раздел
Заимствование,
который описывает передачу ссылок без передачи владения -
раздел
Время жизни,
который описывает, как Rust отслеживает время жизни ссылок