Error handling 匹配结果时返回错误的最干净方法是什么<;T、 E>;?

Error handling 匹配结果时返回错误的最干净方法是什么<;T、 E>;?,error-handling,rust,Error Handling,Rust,我正在调用一个返回结果的函数,我想处理确定的情况,但返回错误,就像返回错误一样。最干净的方法是什么 例如,我有: fn example() -> Result<(), Error> { match foo() { Ok(v) => bar(v), Err(e) => Err(e), } } fn示例()->结果{ 匹配foo(){ 正常(v)=>巴(v), 误差(e)=>误差(e), } } 写这篇文章的其他形式是

我正在调用一个返回
结果
的函数,我想处理
确定
的情况,但返回
错误
,就像返回错误一样。最干净的方法是什么

例如,我有:

fn example() -> Result<(), Error> {
    match foo() {
        Ok(v) => bar(v),
        Err(e) => Err(e),
    }
}
fn示例()->结果{
匹配foo(){
正常(v)=>巴(v),
误差(e)=>误差(e),
}
}
写这篇文章的其他形式是什么?在堆栈中的每个调用中,在另一个
Err
中重新包装
e
感觉很奇怪。而且,每个调用基本上是4行样板文件。。。我只是在寻找一种简化的方法,让它更具可读性。我希望它在出错时返回错误,否则处理结果值。

Rust包含一个。如果调用的
结果
的值为
Ok
它将展开并返回内部值。如果值为
Err
,它将从函数返回并将
Err
传递给调用者

fn示例()->结果{
设v=foo()?;
巴(五);
}
锈病包括一种细菌。如果调用的
结果
的值为
Ok
它将展开并返回内部值。如果值为
Err
,它将从函数返回并将
Err
传递给调用者

fn示例()->结果{
设v=foo()?;
巴(五);
}

让v=foo()?
将错误向上传播。请参阅rust文档中的示例。请花时间阅读。在本例中,。这是相关部分:
让v=foo()?
将错误传播到上。请参阅rust文档中的示例。请花时间阅读。在这种情况下,这是相关的部分:哦,我的上帝,你是一个救生员。我记得看到过这个,但我认为它是在结果类型的重力卡住之前,所以没有保留它。哦,我的上帝,你是个救命恩人。我记得看到过这一点,但我认为这是在结果类型的重力卡住之前,所以没有保留它。