gpt4 book ai didi

rust - Rust:错误,类型不匹配。找到std::result::Result

转载 作者:行者123 更新时间:2023-12-03 11:45:32 30 4
gpt4 key购买 nike

我正在制作一个将两个数字相除的系统,如果第二个数字不存在,它将选择第一个数字。这是代码:

 let new_num: f32 = match num1/num2 {
Ok(num) => num,
Err(error) => num1,
};

但是,它返回: Error: Mismatched types. Expected f32, found std::result::Result为什么会发生这种情况,我该如何解决?

最佳答案

表达式num1/num2是算术除法。给定变量f32num1num2类型,该表达式的结果具有f32类型,而不是Result类型。

示例:

let num1: f32 = 2.0;
let num2: f32 = 3.0;
let new_num: f32 = num1 / num2;

如果您想为不存在的事物开发逻辑,则可以使用 Option。如果该值不存在,则 OptionNone

预期行为的示例:
fn main() {
assert_eq!(2.0, divide_or_get_first(2.0, None));
assert_eq!(5.0, divide_or_get_first(10.0, Some(2.0)));
}

fn divide_or_get_first(num1: f32, num2: Option<f32>) -> f32 {
match num2 {
Some(value) => {
num1 / value
}
None => {
num1
}
}
}

看:
  • https://doc.rust-lang.org/std/option/
  • 关于rust - Rust:错误,类型不匹配。找到std::result::Result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61962205/

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