Область видимости переменной в Rust
Имя, объявленное внутри ветки, снаружи этой ветки
не видно. Команда let внутри фигурных скобок
создает переменную только для этого блока. После
закрывающей скобки обращаться к такому имени нельзя.
Компилятор не собирает программу, если имя используют вне блока, где оно появилось. Внешние переменные, объявленные до проверки, внутри ветки по-прежнему видны.
Объявим число внутри ветки и попробуем вывести его ниже:
if true {
let inner = 5;
println!("{}", inner);
}
println!("{}", inner);
Та же ошибка, если имя нужно только снаружи ветки, где его объявили:
if false {
let tmp = 1;
}
println!("{}", tmp);
Скажите, соберется ли программа, если объявить
note внутри ветки и вывести note
после закрывающей скобки.
Дана переменная:
let outer = 1;
Внутри ветки с истинной проверкой выведите outer.
Скажите, почему это допустимо.
Скажите, где заканчивается область имени, объявленного внутри фигурных скобок ветки.