如何用夜间Rust解析浮子?

时间:2014-08-16 10:14:37

标签: rust

我无法找到如何解析当前Rust中的浮点数according to the documentation我认为这应该有效:

use std::f32;
use std::from_str::FromStr;

fn main() {
    let result = f32::from_str("3.14");
    println!("{}", result.unwrap());
}

但是编译器抱怨:

<anon>:5:18: 5:31 error: unresolved name `f32::from_str`.
<anon>:5     let result = f32::from_str("3.14");
                          ^~~~~~~~~~~~~

(参见Rust围栏:here

我在这里缺少什么?

2 个答案:

答案 0 :(得分:10)

1.0.0 alpha~Nightly 中,您可以使用std::str::StrExt::parse代替

assert_eq!("3.14".parse(), Ok(3.14f64))

此处还有您的代码示例

fn main() {
    let result: f32 = "3.14".parse().unwrap();
    println!("{}", result);
}

Playpen link

答案 1 :(得分:8)

目前,静态特征方法只能通过特征调用,返回值通过类型推断推断,因此let x: Option<f32> = FromStr::from_str("3.14");。实施UFCS#16293)后,这将更加灵活,至少无需编写完整的Option<f32>类型签名。

但是,在这种特定情况下,推荐的方法是前置的独立from_str函数,因此可以在没有导入的情况下使用。该函数在变量绑定上使用显式类型注释,如上所述,但也可以使用较短的类型提示:

fn main() {
    let result = from_str::<f32>("3.14");
    println!("{}", result.unwrap());
}

playpen