Всем привет. Разбираюсь с Rust. Наткнулся на shadowing. Вот пример:
let x = 15;
println!("x is {}", x);
let x = 42;
println!("x is {}", x);
let x = "A String";
println!("x is {}", x);
let x = true;
println!("x is {}", x);
Еще, например, в этом коде:
let mut guess = String::new();
let mut guess = String::new();
Освобождение памяти для переменной из верхней строки будет когда дело дойдет до второй или я не прав? Не потечет ли память, если она не освобождается на второй строке? А если там не string, а моя структура со своей реализацией drop, где я не освобождаю память явно, ржавчина достаточно умен чтобы удалить все за меня?