【发布时间】:2020-03-18 04:56:16
【问题描述】:
我有这样的事情:
match fnX(
fnY(x), // Returns Result<(), X>
) // Returns Result<(), Y>
.await
{
Ok(v) => {
if v.is_err() {
error!("error = {}", v);
}
}
Err(e) => error!("error = {}", e),
};
我怎样才能用组合器写这个,这样我只需要error! 一次?我不想对Ok 值做任何事情,只要打印错误来自fnX 或fnY。
【问题讨论】:
-
期望真的不清楚,你怎么能从一个返回
Result<(), Y>的函数中得到v.is_err()?这是没有意义的,根据定义v将是(),它没有is_err。fnX()真的将Result<(), X>作为输入吗?
标签: error-handling rust pattern-matching