Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 锈蚀:错误,类型不匹配。找到std::result::result_Rust - Fatal编程技术网

Rust 锈蚀:错误,类型不匹配。找到std::result::result

Rust 锈蚀:错误,类型不匹配。找到std::result::result,rust,Rust,我正在制作一个系统来划分两个数字,如果第二个数字不存在,它只选择第一个数字。代码如下: let new_num: f32 = match num1/num2 { Ok(num) => num, Err(error) => num1, }; 然而,它返回: 错误:类型不匹配。应为f32,找到std::result::result 为什么会发生这种情况?我如何修复它?表达式num1/num2是一个算术除法。给定两个变量num1和num2的类型f32,该表达式的结

我正在制作一个系统来划分两个数字,如果第二个数字不存在,它只选择第一个数字。代码如下:

 let new_num: f32 = match num1/num2 {
     Ok(num) => num,
     Err(error) => num1,
 };
然而,它返回:
错误:类型不匹配。应为f32,找到std::result::result


为什么会发生这种情况?我如何修复它?

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

示例:

let num1: f32 = 2.0;
let num2: f32 = 3.0;
let new_num: f32 = num1 / num2;
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
        }
    }
}
如果要为不存在的东西开发逻辑,可以使用
选项
。如果值不存在,
选项
None

预期行为示例:

let num1: f32 = 2.0;
let num2: f32 = 3.0;
let new_num: f32 = num1 / num2;
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
        }
    }
}
fn main(){
assert_eq!(2.0,先除_或_get_(2.0,无));
assert_eq!(5.0,先除_或_get_(10.0,部分(2.0));
}
fn首先除以或获取(num1:f32,num2:Option)->f32{
匹配num2{
一些(值)=>{
num1/数值
}
无=>{
num1
}
}
}
见:


首先,你能分享一下你如何获得
num1
num2
的代码吗?