Rust 如何处理“展开”或“其他”中的异常(错误)? struct OverflowError{} fn测试_展开()->结果{ 设a:Result=Err(100); 让a:String=a.unwrap_或_else(| err |{ 如果误差src/lib.rs:13:13 | 6 |让a:String=a.unwrap_或| else(| err |{ | ______________________________________- 7 | |如果误差小于100{ 8 | |字符串::from(“Ok”) 9 | |}其他{ ... | 13 | | Err(溢出错误{})? || ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^` 14 | | } 15 | | }); || ___-此函数应返回'Result'或'Option'以接受'` | =帮助:“std::ops::Try”特性没有为“std::string::string”实现` =注意:`std::ops::Try::from_error'所需`

Rust 如何处理“展开”或“其他”中的异常(错误)? struct OverflowError{} fn测试_展开()->结果{ 设a:Result=Err(100); 让a:String=a.unwrap_或_else(| err |{ 如果误差src/lib.rs:13:13 | 6 |让a:String=a.unwrap_或| else(| err |{ | ______________________________________- 7 | |如果误差小于100{ 8 | |字符串::from(“Ok”) 9 | |}其他{ ... | 13 | | Err(溢出错误{})? || ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^` 14 | | } 15 | | }); || ___-此函数应返回'Result'或'Option'以接受'` | =帮助:“std::ops::Try”特性没有为“std::string::string”实现` =注意:`std::ops::Try::from_error'所需`,rust,Rust,这是我代码的简化版本。基本上,在unwrap\u或_else闭包中,可能存在条件错误(例如IOError)。在这种情况下,我希望提前终止函数(使用?)。但显然它不起作用,因为它当前处于闭包中,并且闭包不期望结果类型 处理此问题的最佳做法是什么?您需要的是: struct OverflowError{} fn测试_展开()->结果{ 设a:Result=Err(100); 设a:String=a.or|else(| err |{ 如果误差结果{ 错误(100)。或其他(|错误|{ 如果误差

这是我代码的简化版本。基本上,在
unwrap\u或_else
闭包中,可能存在条件错误(例如IOError)。在这种情况下,我希望提前终止函数(使用
)。但显然它不起作用,因为它当前处于闭包中,并且闭包不期望结果类型

处理此问题的最佳做法是什么?

您需要的是:

struct OverflowError{}
fn测试_展开()->结果{
设a:Result=Err(100);
设a:String=a.or|else(| err |{
如果误差<100{
Ok(字符串::from(“Ok”))
}否则{
错误(溢出错误{})
}
})?;
好的(a)
}
简化:

struct OverflowError{}
fn测试_展开()->结果{
错误(100)。或其他(|错误|{
如果误差<100{
Ok(字符串::from(“Ok”))
}否则{
错误(溢出错误{})
}
})
}