I have the following simplified code:
fn f() -> i32 {
let a = some_result.unwrap_or_else(|_| {
return 1; // want to return this value from f <-------------
});
}
I want to return the value 1
from the whole function f
in this specific error case but I can't figure out how to do it from within a closure.
If I instead use a match
expression, it works fine as follows:
fn f() -> i32 {
let a = match some_result {
Ok(result) => result,
Err(_) => { return 1; },
};
}
However, this makes the code verbose since I have the trivial Ok
match arm.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…