我正在使用Anyhow并有一个返回的函数anyhow::Result。在该函数中,我想“解开”一个选项,以便如果选项值为None,则返回带有特定错误消息的错误。这就是我所做的:
let o: Option<i32> = ...;
let v: i32 = o.ok_or_else(|| anyhow!("Oh, boy!"))?;
// here I need v only
Run Code Online (Sandbox Code Playgroud)
ok_or_else()出于ok_or()性能原因,我使用了 not 。
我通常对此表示同意,但想知道这是否是做我想做的事情的最简单(最简洁)的方法(不牺牲性能)?