Обнаружил, что в
Rust можно объявлять переменные с одним и тем же именем, это называется затенение (shadowing). Новая переменная «затеняет» предыдущую, и мы даже можем использовать значение из старой переменной:
let number = 10;
println!("{}", number); // 10
let number = 15; // Затеняем предыдущий number
println!("{}", number); // 15
let number = number + 15; // Берем прошлый number и прибавляем 15
println!("{}", number); // 30
В отличие от
mut переменных, здесь каждый раз создается новая переменная. В
Swift и многих других языках такой код вызвал бы ошибку: нельзя объявить две переменные с одинаковым именем в одной области видимости.