正弦函数在哪里?

Kap*_*chu 10 math trigonometry rust

简单的问题:在哪里sin()?我已经搜索并仅在锈文档发现有类似的特征std::num::Float需要罪,但没有实现.

She*_*ter 15

Float特性被删除,并且这些方法都在类型固有的实现了.这意味着访问数学函数的输入更少:

fn main() {
    let val: f32 = 3.14159;
    println!("{}", val.sin());
}
Run Code Online (Sandbox Code Playgroud)

但是,如果3.14159.sin()引用32位或64位数字则不明确,因此您需要明确指定它.上面,我设置了变量的类型,但您也可以使用类型后缀:

fn main() {
    println!("{}", 3.14159f64.sin());
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用完全限定的语法:

fn main() {
    println!("{}", f32::sin(3.14159));
}
Run Code Online (Sandbox Code Playgroud)

  • 您将需要升级到最新版本的Rust.为准备1.0版本,还有很多工作要做!在这种特殊情况下,浮点文字现在默认为类型`f64`([相关RFC](https://github.com/rust-lang/rfcs/blob/master/text/0212-restore-int-fallback. MD)).如果你想让它工作,而不升级,请尝试`3.14f64.sin()`. (2认同)
  • @Kapichu,这些错误很可能是由于这些函数以前是`std :: num :: FloatMath`特征的一部分(不是文字默认)所引起的,但是这也将通过[升级]来解决(http:// www. rust-lang.org/install.html)(我推荐[multirust](https://github.com/brson/multirust)). (2认同)