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)
}
注意嵌套的OkOk(Ok(20))
而不是正确的单个OkOk(20)
与我所寻找的相似之处在于,在我学习rust的过程中,我希望用语言思维完成工作。您正在寻找:
fn main(){
让result=result1(),然后(result2);
println!(“{:?}”,结果);
//输出:正常(20)
}
谢谢,我以前没有尝试过和_then
,因为它的行为与Rxs和
完全不同。这是学习一门新语言的一件好事:)