История изменений
Исправление red75prim, (текущая версия) :
Освобождение памяти для переменной из верхней строки будет когда дело дойдет до второй или я не прав?
Почему бы самому не проверить?
struct A(u32);
impl Drop for A {
fn drop(&mut self) {
println!("A({}) уничтожена", self.0);
}
}
fn main() {
let a = A(0);
println!("A(0) создана");
let a = A(1);
println!("A(1) создана");
}
Результат
A(0) создана
A(1) создана
A(1) уничтожена
A(0) уничтожена
Переменные уничтожаются в конце блока в порядке обратном объявлению.
Исходная версия red75prim, :
Освобождение памяти для переменной из верхней строки будет когда дело дойдет до второй или я не прав?
Почему бы самому не проверить?
struct A(u32);
impl Drop for A {
fn drop(&mut self) {
println!("A({}) уничтожена", self.0);
}
}
fn main() {
let a = A(0);
println!("A(0) создана");
let a = A(1);
println!("A(1) создана");
}
Результат
A(0) создана
A(1) создана
A(1) уничтожена
A(0) уничтожена
Переменные уничтожаются в порядке обратном объявлению.