sag*_*aga 2 destructor memory-management rust
根据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);
}
Run Code Online (Sandbox Code Playgroud)
这是做什么的std::mem::drop?它是否执行除此之外的任何其他清理任务?
我们来看看来源:
#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
pub fn drop<T>(_x: T) { }
Run Code Online (Sandbox Code Playgroud)
#[inline]给编译器一个暗示该函数应该内联的提示.#[stable]标准库使用它来标记稳定通道上可用的API.否则,它真的只是一个空功能!当_x超出范围作为drop返回时,其析构函数运行; 在Rust中没有其他方法可以隐式执行清理任务.