Блок и область видимости в Rust
Отдельные фигурные скобки внутри функции
создают свою область. Имя из объявления
let внутри такого блока видно только
между открывающей и закрывающей скобкой.
После скобки обращаться к нему нельзя.
Объявим число внутри простого блока и выведем его там же:
{
let slot = 3;
println!("{}", slot);
}
На экране 3. Следующая команда уже
вне области slot:
{
let slot = 3;
}
println!("{}", slot);
Вложенные блоки работают так же. Внутренний блок может читать имя из внешнего блока той же функции, пока внутри не появилась тень:
let base = 1;
{
println!("{}", base);
{
let inner = 2;
println!("{}", inner);
}
}
Дан следующий код:
{
let key = 8;
}
println!("{}", key);
Скажите, соберется ли программа.
Дана переменная:
let outer = 4;
Внутри блока без условия выведите outer.
Скажите, почему это допустимо.
Дан следующий код:
{
{
let v = 1;
}
println!("{}", v);
}
Скажите, соберется ли программа.