如果变量..._or_else()
是executed only when it's needed
// example
let value = option.unwrap_or_else(|| compute_value(argument));
// only executed if `option` is of enum variant Option::None
那有没有..._or()
有优势的情况呢?
I understand that,如果..._or_else()
内部的结果已经计算过,则可以使用..._or()
而不会有任何缺陷.但在这种情况下有什么优势吗?
我试过了,找到了建议从..._or_else()
改为..._or()
的快速规则,但我很难理解this rule的原因:
为什么这很糟糕?
在某些情况下,使用Eager 求值更短、更简单.
已知问题
Deref和Index有可能有副作用,但不推荐使用.热切地判断>;它们可以改变程序的语义.