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 如何将两个结果展平_Rust - Fatal编程技术网

Rust 如何将两个结果展平

Rust 如何将两个结果展平,rust,Rust,给定以下两个函数,如何将两个结果“展平”为一个 fn result1()->Result{ 好的(10) } fn结果2(编号:u8)->结果{ Ok(数字*2) } 因此,运行以下代码: fn main(){ 让result=result1().map(| number | result2(number)); println!(“{:?}”,结果); //输出:正常(正常(20)) } 我得到的结果与此代码相同: fn main(){ 让result=result1().map(| num

给定以下两个函数,如何将两个
结果
“展平”为一个

fn result1()->Result{
好的(10)
}
fn结果2(编号:u8)->结果{
Ok(数字*2)
}
因此,运行以下代码:

fn main(){
让result=result1().map(| number | result2(number));
println!(“{:?}”,结果);
//输出:正常(正常(20))
}
我得到的结果与此代码相同:

fn main(){
让result=result1().map(| number | number*2);
println!(“{:?}”,结果);
//输出:正常(20)
}
注意嵌套的Ok
Ok(Ok(20))
而不是正确的单个Ok
Ok(20)

与我所寻找的相似之处在于,在我学习rust的过程中,我希望用语言思维完成工作。

您正在寻找:

fn main(){
让result=result1(),然后(result2);
println!(“{:?}”,结果);
//输出:正常(20)
}

谢谢,我以前没有尝试过
和_then
,因为它的行为与Rxs
完全不同。这是学习一门新语言的一件好事:)