除了使用 as
, &
, *
操作符进行基本类型之间的类型转换之外,Rust 还为我们提供了一些有用的 trait,帮助我们进行类型转换,这类 trait 能一定程度上提升编程体验。本文会介绍一部分。
Asref,AsMut 和 Borrow,BorrowMut
AsRef
和 Borrow
用于进行廉价的从引用到引用的转换,并且还具有相同的签名:
pub trait AsRef<T> where
T: ?Sized, {
fn as_ref(&self) -> &T;
}
pub trait Borrow<Borrowed> where
Borrowed: ?Sized, {
fn borrow(&self) -> &Borrowed;
}
不同的地方在于:
Read more