Deref Rust · 常用Trait
解引用 Trait,实现后可以让自定义类型像引用一样用 * 访问,并支持自动解引用调用方法。
怎么用
impl Deref for 类型 { type Target = ...; fn deref(&self) -> &Target { ... } },用于自定义解引用
小例子
use std::ops::Deref;
struct 我的盒<T>(T);
impl<T> Deref for 我的盒<T> {
type Target = T;
fn deref(&self) -> &T { &self.0 }
}
let b = 我的盒(5);
println!("{}", *b);
运行结果
5
提醒:智能指针常实现 Deref,让你像用引用一样用它
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条