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

Mid*_*das 2 generics rust

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

Luk*_*oid 6

这就是可以使用num-traits包.该Num特征适用于所有数字类型.

这可确保您的泛型类型T具有所有预期数值运算,Add,Sub,Mul,Div,Rem,可以部分地通过平等检查PartialEq,这也暴露了价值10T.

您可以在此处查看crate如何实现特征:

int_trait_impl!(Num for usize u8 u16 u32 u64 isize i8 i16 i32 i64);
Run Code Online (Sandbox Code Playgroud)

  • 只要看看箱子做什么,他们只用水做饭 (3认同)
  • @Midas他们定义了特征“Num”并为所有标准数字类型实现了它。您可以创建自己的特征“Num”并为所有数字类型实现它,但您也可以使用板条箱。 (2认同)