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>
std::convert 下面,还有另外两个 Trait,AsRef/AsMut,它们功能是配合泛型,在执行引用操作的时候,进行自动类型转换。这能够使一些场景的代码实现得清晰漂亮,大家方便开发。AsRefAsRef 提供了一个方法 .as_ref()。对于一个类型为 T 的对象 foo,如果 T 实现了 AsRef<U>,那么,foo 可执行 .as_ref() 操作,即 foo.as_ref()。
关注时代Java