如何限制Rust中的T只接受数字类型?

时间:2017-09-03 08:22:25

标签: generics rust

我想创建一些具有泛型类型T的属性的结构。这个泛型类型将用于计算,所以我希望T是所有类型的数字类型,如i32,u32,f32,uf32,i64我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:6)

这是num-traits crate可用于的内容。 Num trait是针对所有数字类型实现的。

这可确保您的通用类型T包含所有预期的数字运算符AddSubMulDivRem ,可以通过PartialEq进行部分平等检查,还会为1公开0T的值。

您可以看到crate如何实现特征here

int_trait_impl!(Num for usize u8 u16 u32 u64 isize i8 i16 i32 i64);