我在 SO 帖子中看到了以下评论,我很感兴趣:
为什么不使用 if 进行空检查?
a?.let{} ?: run{}
仅在极少数情况下是合适的,否则它不是惯用的 — — voddan 2016 年 5 月 15 日在 7:29 在 kotlin 中进行空检查的最佳方法?
为什么该结构“仅适用于极少数情况”?
Kotlin 的首席工程师说,
run 允许您在 elvis 运算符的右侧使用多个语句 https://stackoverflow.com/a/51241983/6656019
尽管我承认这实际上并没有认可它是惯用的。这两个帖子似乎都来自备受尊敬的 SO Kotlin 贡献者。
激发原始评论的帖子提到,如果是可变let
的,则表达式的一部分很重要。a
在这种情况下,您需要a?.let{} ?: run{}
代替if{} else {}
.
我发现我喜欢“让猫王跑”的结构。在大多数情况下我应该避免它吗?
感谢您的任何见解。