我想创建一些具有泛型类型T的属性的结构。这个泛型类型将用于计算,所以我希望T是所有类型的数字类型,如i32,u32,f32,uf32,i64我怎样才能做到这一点?
答案 0 :(得分:6)
这是num-traits crate可用于的内容。 Num
trait是针对所有数字类型实现的。
这可确保您的通用类型T
包含所有预期的数字运算符Add
,Sub
,Mul
,Div
,Rem
,可以通过PartialEq
进行部分平等检查,还会为1
公开0
和T
的值。
您可以看到crate如何实现特征here:
int_trait_impl!(Num for usize u8 u16 u32 u64 isize i8 i16 i32 i64);