Function core::mem::drop 1.0.0[−][src]
pub fn drop<T>(_x: T)
Expand description
处理一个值。
通过调用 Drop
的参数实现来实现。
这对于实现 Copy
的类型实际上不起作用,例如
integers.
这样的值被复制并将 then 移到函数中,因此该值在此函数调用之后仍然存在。
这个功能并不神奇。它的字面定义为
pub fn drop<T>(_x: T) { }Run
由于 _x
已移入函数,因此它会在函数返回之前自动丢弃。
Examples
基本用法:
let v = vec![1, 2, 3]; drop(v); // 显式丢弃 vectorRun
由于 RefCell
在运行时强制执行借用规则,因此 drop
可以发布 RefCell
借用:
use std::cell::RefCell; let x = RefCell::new(1); let mut mutable_borrow = x.borrow_mut(); *mutable_borrow = 1; drop(mutable_borrow); // 放弃该插槽上的可变借用 let borrow = x.borrow(); println!("{}", *borrow);Run
实现 Copy
的整数和其他类型不受 drop
的影响。
#[derive(Copy, Clone)] struct Foo(u8); let x = 1; let y = Foo(2); drop(x); // `x` 的副本已移动并丢弃 drop(y); // `y` 的副本已移动并丢弃 println!("x: {}, y: {}", x, y.0); // 仍然可用Run