gpt4 book ai didi

rust - 模式匹配解析 float 错误

转载 作者:行者123 更新时间:2023-11-29 08:02:37 24 4
gpt4 key购买 nike

我有这个:

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
}
};

}

它导致了一个错误:

error: the type of this value must be known in this context
Ok(num) => num.unwrap(),
^~~~~~~~~~~~

如何转换 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
}
};

}

您也可以使用 Result::unwrap_or() 代替:

Test {
amount: amnt.parse().unwrap_or(0.0)
}

关于rust - 模式匹配解析 float 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30502093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com