Deref DerefMut

std::ops::Derefstd::ops::DerefMut 特征用于重载引用运算符*x。对于 AB 类型,

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 不同),给定类型最多只能实现一次 DerefDerefMut