我有这个:
struct Test {
amount: f32
}
fn main() {
let amnt: String = "9.95".to_string();
let test = Test {
amount: match amnt.parse() {
Ok(num) => num.unwrap(),
Err(e) => 0f32
}
};
}
Run Code Online (Sandbox Code Playgroud)
它导致错误:
error: the type of this value must be known in this context
Ok(num) => num.unwrap(),
^~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
如何强制num修复此错误?
因为你已经进行了模式匹配Ok(),所以你不需要打电话unwrap(); num已经是类型了f32.
编译好:
struct Test {
amount: f32
}
fn main() {
let amnt: String = "9.95".to_string();
let test = Test {
amount: match amnt.parse() {
Ok(num) => num,
Err(e) => 0f32
}
};
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用Result::unwrap_or():
Test {
amount: amnt.parse().unwrap_or(0.0)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
310 次 |
| 最近记录: |