use*_*961 3 generics floating-point rust
有没有办法指定泛型类型T只能是f32或f64?否则,我结束了征收大量的样板类型约束:Copy,Add<Output=T>,Sub<Output=T>,Mul...,Div... Zero,One等等,这一段时间后变得乏味.也恐怕这个名单将增长到包括Sin,Cos,Tan等的未来.
你想要的num::traits::Float,可以放在箱子里num.
Float保证每种类型都满意Num + Copy + NumCast + PartialOrd + Neg<Output=Self>.反过来,PartialEq + Zero + One + Add + Sub + Mul + Div + Rem是必需的Num.这回答了您对基本算术的第一次要求.其它操作喜欢sin(),cos()都可以在成员函数Float.
最后,f32并f64作为实现者提供开箱即用的Float.