如何使 Rust 函数接受任何浮动类型作为参数

2024-02-15

我正在编写一个可以接受任何浮点数据的函数,类似于以下形式:

fn multiply<F: Float>(floating_point_number: F) -> F {
    floating_point_number * 2
}

但我在文档中找不到它的语法,也找不到仅浮点数共有的特征。


目前,Rust 中所有原始数字类型的通用故事都可以在官方中找到num https://docs.rs/num/latest/num/index.html箱。除其他内容外,该板条箱还包含许多为各种原始数字类型实现的特征,特别是Float https://docs.rs/num/latest/num/trait.Float.html它代表一个浮点数。

FloatTrait 提供了很多特定于浮点数的方法,但它也扩展了Num https://docs.rs/num/latest/num/trait.Num.html and NumCast https://docs.rs/num/latest/num/trait.NumCast.html允许人们执行数字运算并从任意原始数字获取泛型类型的特征。和Float你的代码可能如下所示:

use num::{Float, NumCast};

fn multiply<F: Float>(n: F) -> F {
    n * NumCast::from(2).unwrap()
}

NumCast::from()回报Option因为并非所有数字转换都有意义,但在这种特殊情况下它保证可以工作,因此我使用unwrap().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Rust 函数接受任何浮动类型作为参数 的相关文章

随机推荐