Rust 类型系统: 使用 trait 进行类型转换

除了使用 as, &, * 操作符进行基本类型之间的类型转换之外,Rust 还为我们提供了一些有用的 trait,帮助我们进行类型转换,这类 trait 能一定程度上提升编程体验。本文会介绍一部分。

Asref,AsMut 和 Borrow,BorrowMut

AsRefBorrow 用于进行廉价的从引用到引用的转换,并且还具有相同的签名:

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