测试实例:单位澄清

通过使用虚类型参数实现 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>; ... }

完整实现如下:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

另请参阅:

借用(&约束(X: Y枚举impl 和 self运算符重载reftrait(X for Y以及元组结构体