根据The Rust Programming Language, ch15-03,std::mem::drop
获取一个对象,获得其所有权,并调用其drop
函数。
这是代码的作用:
fn my_drop<T>(x: T) {}
fn main() {
let x = 5;
let y = &x;
let mut z = 4;
let v = vec![3, 4, 2, 5, 3, 5];
my_drop(v);
}
这是std::mem::drop
的作用吗?它是否执行除此之外的任何其他清理任务?
答案 0 :(得分:8)
让我们来看看source:
#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
pub fn drop<T>(_x: T) { }
#[inline]
向编译器提示应该内联函数。标准库使用#[stable]
来标记稳定通道上可用的API。否则,它真的只是一个空功能!当_x
退出范围时drop
返回,其析构函数运行;在Rust中没有其他方法可以隐式执行清理任务。