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
。