尝试编写处理真实参数的通用函数时,我遇到了使用常量值的需要。
C++ 代码:
template <typename T>
T multiplyBy0_6 (T value) {
return value * 0.6;
}
template <typename T>
T divideBy0_6 (T value) {
return value / 0.6;
}
我不知道如何在 Rust 中写同样的东西,更确切地说如何获得 0.6 的广义值。为此应该使用什么?FromPrimitive、From、Into、NumCast?文档中没有什么清楚的。
锈代码:
extern crate num;
use num::Float;
fn multiply_by_0_6 <T: Float> (value: T) {
value * ?(0.6)
}
fn divide_by_0_6 <T: Float> (value: T) {
value / ?(0.6)
}
该模块
num::cast
有一个功能cast()
。你可以使用它。为了减少代码量,您可以创建一个辅助函数,该函数将决定如果无法将常量转换为所需的类型(例如,转换
1.0e256
为f32
)该怎么做。然后代码将如下所示
操场