小编Ale*_*lia的帖子

在什么情况下 `..._or()` 比 `..._or_else(|| {})` 更好,为什么?

如果变体仅在需要时..._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 有可能产生副作用,但不建议这样做。急切地评估>它们可以改变程序的语义。

lazy-evaluation rust rust-clippy

2
推荐指数
1
解决办法
113
查看次数

标签 统计

lazy-evaluation ×1

rust ×1

rust-clippy ×1