我不知道如何从当前的Rust解析浮点数,根据我认为应该工作的文档:
use std::f32;
use std::from_str::FromStr;
fn main() {
let result = f32::from_str("3.14");
println!("{}", result.unwrap());
}
Run Code Online (Sandbox Code Playgroud)
但编译器抱怨:
<anon>:5:18: 5:31 error: unresolved name `f32::from_str`.
<anon>:5 let result = f32::from_str("3.14");
^~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
(参见Rust围栏:这里)
我在这里缺少什么?
Abd*_*iaa 10
在1.0.0 alpha~Nightly中你可以使用std :: str :: StrExt :: parse代替
assert_eq!("3.14".parse(), Ok(3.14f64))
Run Code Online (Sandbox Code Playgroud)
这里还有一个代码示例
fn main() {
let result: f32 = "3.14".parse().unwrap();
println!("{}", result);
}
Run Code Online (Sandbox Code Playgroud)
目前,静态特征方法只能通过特征调用,返回值通过类型推断推断出来,所以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());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3302 次 |
最近记录: |