测试实例:单位澄清
通过使用虚类型参数实现 Add
trait,我们可以探索一种有用的单位转换方法。下面我们来看看 Add
trait:
// 这个结构会强制要求:`Self + RHS = Output`
// 其中,如果在实现中未指定 RHS,它将默认为 Self。
pub trait Add<RHS = Self> {
type Output;
fn add(self, rhs: RHS) -> Self::Output;
}
// `Output` 必须是 `T<U>`,以确保 `T<U> + T<U> = T<U>`。
impl<U> Add for T<U> {
type Output = T<U>;
...
}
完整实现如下:
另请参阅:
借用(&
)、约束(X: Y
)、枚举、impl 和 self、运算符重载、ref、trait(X for Y
)以及元组结构体。