Deref DerefMut
std::ops::Deref
和 std::ops::DerefMut
特征用于重载引用运算符*x
。对于 A
和 B
类型,
impl Deref<Target=B> for A
表示取消引用 &A
的绑定将产生 &B
和,
impl DerefMut for A
表示取消引用 &mut A
的绑定将产生 &mut B
。
Deref
(resp.DerefMut
)还提供了一个名为 deref coercion 的有用语言功能,它允许 &A
(resp.&mut A
)自动强制转换为 &B
(分别为 &mut B
)。这通常在从 String
转换为 &str
时使用,因为 &String
根据需要被隐式强制转换为 &str
。
注意:DerefMut
不支持指定结果类型,它使用与 Deref
相同的类型。
注意:由于使用了相关类型(与 AsRef
不同),给定类型最多只能实现一次 Deref
和 DerefMut
。