我正在寻找一个可以接受任何浮点数据的函数,类似于以下形式:
fn multiply<F: Float>(floating_point_number: F) -> F {
floating_point_number * 2
}
但是我在文档中找不到语法,也找不到仅浮点数共有的特征。
目前,Rust中具有原始数字类型的所有通用故事都可以在官方num
板条箱中找到。除其他外,此板条箱还包含许多为各种原始数字类型实现的特征,尤其是Float
代表浮点数的特征。
Float
性状提供了大量的特异于浮点数的方法,但它也延伸Num
和NumCast
特征,其允许进行数字运算,将获得的通用类型的从任意的原始号码。与Float
您的代码可能是这样的:
use num::{Float, NumCast};
fn multiply<F: Float>(n: F) -> F {
n * NumCast::from(2).unwrap()
}
NumCast::from()
Option
之所以返回,是因为并非所有的数字类型转换都有意义,但是在这种特殊情况下,它可以保证正常工作,因此我使用unwrap()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句