借用 BorrowMut 和 ToOwned
std::borrow::Borrow
和 std::borrow::BorrowMut
特徵用於處理所擁有型別的借用型別。對於 A
和 B
型別,
impl Borrow<B> for A
表示在需要 B
的地方可以使用借來的 A
。例如,std::collections::HashMap.get()
使用 Borrow
作為其 get()
方法,允許帶有 A
鍵的 HashMap
用 &B
索引。
另一方面,std::borrow::ToOwned
實現了反向關係。
因此,使用上述型別 A
和 B
可以實現:
impl ToOwned for B
注意:雖然 A
可以為多種不同型別的 T
實現 Borrow<T>
,但 B
只能實現 ToOwned
一次。