上代码:
use std::ops::Drop;struct D(i32);impl Drop for D {fn drop(&mut self){println!("destruct {}", self.0);}
}fn main() {let _x = D(1);let _x = D(2); //_x被遮蔽了(variable shadow here)println!("-----------");
}//运行程序,注意查看fn drop的输出,即可知道结论。
/*-----------
destruct 2
destruct 1
*/
//实践出真知。
文章标题即是我的结论,如有谬误希望指教。