【发布时间】:2016-06-24 22:55:42
【问题描述】:
说明:这个问题更多是关于 Kotlin 的设计意图。许多表达式语言同时支持Ternary operator 和if expression [例如,Ruby、Groovy。]
首先,我知道 Groovy 支持Ternary operator 和Elvis operator:Ternary operator in Groovy。所以我认为这不是语法问题。
然后官方文档说:
在 Kotlin 中,if 是一个表达式,即它返回一个值。因此没有三元运算符(条件 ? then : else),因为普通的 if 在这个角色中可以正常工作。
这并不能说服我。因为 Kotlin 支持 Elvis operator,普通的 if 在该角色中也可以正常工作。
我认为ternary operator 有时比普通的if 更好,不过我想知道为什么Kotlin 不支持ternary operator?
【问题讨论】: