tim*_*lyo 9 generics polymorphism rust
我正在寻找一个可以接受任何浮点数据的函数,类似于以下形式:
fn multiply<F: Float>(floating_point_number: F){
floating_point_number * 2
}
Run Code Online (Sandbox Code Playgroud)
但我在文档中找不到它的语法,或者只是浮点数常见的特征
Vla*_*eev 13
目前,Rust中所有具有原始数字类型的通用故事都可以在官方num
包中找到.除其他外,该包中包含为各种原始数字类型实现的许多特征,特别是Float
表示浮点数的特征.
Float
trait提供了许多特定于浮点数的方法,但它也扩展Num
和NumCast
traits,允许执行数值运算并从任意原始数中获取泛型类型.随着Float
你的代码看起来是这样的:
use num::{Float, NumCast};
fn multiply<F: Float>(n: F) -> F {
n * NumCast::from(2).unwrap()
}
Run Code Online (Sandbox Code Playgroud)
NumCast::from()
返回,Option
因为不是所有的数字转换都有意义,但在这种特殊情况下它保证工作,因此我使用unwrap()
.
归档时间: |
|
查看次数: |
1279 次 |
最近记录: |