如何错误处理字符串到浮点转换

tur*_*tle 2 rust

这是一个非常简单的问题,但我似乎无法解决。我有一个字符串,我想将其转换为浮点数。我也想捕获此转换中的任何错误。

let str = "10.0"
let f: f32 = str.parse().unwrap();
Run Code Online (Sandbox Code Playgroud)

如何捕获字符串 is""或的错误dog。我试图使用 Some 和 None 的匹配表达式,但我不确定是否正确,因为我无法让它工作。

Apl*_*123 5

parse返回 a Result,而不是 an Option,因此您应该使用OkandErr而不是Someand None

let str = "10.0";
let f: f32 = match str.parse() {
    Ok(v) => v,
    Err(_) => 0.0 // or whatever error handling
};
Run Code Online (Sandbox Code Playgroud)