如果变体仅在需要时..._or_else()执行
// example
let value = option.unwrap_or_else(|| compute_value(argument));
// only executed if `option` is of enum variant Option::None
Run Code Online (Sandbox Code Playgroud)
那么有没有什么情况是..._or()有优势的呢?
我的理解是,如果里面的结果..._or_else()已经计算出来了,那么using..._or()就可以毫无缺陷地使用。但这种情况有什么好处吗?
..._or_else()我尝试过情况并发现了建议从 更改为 的Clippy 规则..._or(),但我很难理解该规则的原因:
为什么这样不好?
在某些情况下,使用即时求值会更短、更简单。
已知问题
Deref 和 Index 有可能产生副作用,但不建议这样做。急切地评估>它们可以改变程序的语义。