简化Rust的错误处理,如果结果 >

问题描述 投票:0回答:1

假设我有一个具有Result<Option<T>>结果的函数。

如果ResultErrOptionNone,我想返回MyError错误。

您的建议是什么?

rust
1个回答
0
投票
fn my_fun() -> Result<Thing, MyError> { match other_fun() { Ok(Some(thing)) => Ok(thing), _ => Err(MyError{}), } }

如果您的错误实现了From<TheOtherError>,在这里可能是个好主意,您也可以这样做

fn my_fun() -> Result<Thing, MyError> {
    other_fun()?.ok_or(MyError{})
}
© www.soinside.com 2019 - 2024. All rights reserved.