У меня есть следующий упрощенный код:
fn f() -> i32 {
let a = some_result.unwrap_or_else(|_| {
return 1; // want to return this value from f <-------------
});
}
Я хочу вернуть значение 1
из всей функции f
в этом конкретном случае ошибки, но не могу понять, как это сделать из замыкания.
Если вместо этого я использую выражение match
, оно работает следующим образом:
fn f() -> i32 {
let a = match some_result {
Ok(result) => result,
Err(_) => { return 1; },
};
}
Однако это делает код многословным, так как у меня есть тривиальная рука Ok
match.