borrow-and-asref.mdcommit 024aa9a345e92aa1926517c4d9b16bd83e74c10dBorrow和AsRef特性非常相似。这是一个快速的关于这两个特性意义的复习。BorrowBorrow特性用于当你处于某种目的写了一个数据结构,并且你想要使用一个要么拥有要么借用的类型作为它的同义词。例如,HashMap有一个用了Borrow的get方法:fn get<Q: ?Sized>(&self, k: &Q) ->
Borrow 和 AsRef 特性是非常相似的,但是也有些区别。这里有一个简单回顾一下这两个特质是什么意思。BorrowBorrow 特性是当你写一个数据结构时,并且你想要使用一个 owned 或 borrowed 类型作为用于某些目的的同义词。例如,HashMap 的 get 方法就使用了 Borrow: fn get<Q: ?Size>(&self, k:&Q) -> Option<&V> where K:Borrow<Q>
Borrowuse std::borrow::Borrow;Borrow 提供了一个方法 .borrow()。对于一个类型为 T 的值 foo,如果 T 实现了 Borrow<U>,那么,foo 可执行 .borrow() 操作,即 foo.borrow()。操作的结果,我们得到了一个类型为 &U 的新引用。Borrow 可以认为是 AsRef 的严格版本,它对普适引用操作的前后类型之间附加了一些其它限制。
关注时代Java