代码点读机 / Rust / Deref

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,让你像用引用一样用它

官方文档:https://doc.rust-lang.org/std/ops/trait.Deref.html

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条