Rust - новое значение переменной в u64 не меняется, в чем ошибка?
Возможно ошибка глупая, но не могу понять суть ее. Прошу помощи. Почему новое значение, полученное внутри условного оператора не применяется (let oldfiles:u64 = 6666;), а используется старое (let oldfiles:u64 = 5555;) ? Условие if true выполняется.
let oldfiles:u64 = 5555;
if true {
let oldfiles:u64 = 6666;
dbg!(oldfiles); // oldfiles = 6666
}
//почему здесь значение oldfiles не изменилось и равно 5555 ?
dbg!(oldfiles); // oldfiles = 5555
Ответы (1 шт):
Автор решения: Pavel Mayorov
→ Ссылка
Ключевое слово let объявляет новую переменную. То есть вместо присваивания значения старой переменной вы завели новую, которая не видна за пределами того блока, где была объявлена.
Если вы собираетесь изменять значение переменной - надо объявить её как мутабельную (mut), и не писать let во второй раз:
let mut oldfiles:u64 = 5555;
if true {
oldfiles = 6666;
}
dbg!(oldfiles); // oldfiles = 6666