解释:这个问题更多的是关于Kotlin的设计意图.许多表达式语言都支持Ternary operator和if expression[例如,Ruby,Groovy.]
首先,我知道Groovy支持Ternary operator和Elvis operator:Groovy中的三元运算符.所以我不认为这是一个语法问题.
然后官方文件说:
在Kotlin中,if是一个表达式,即它返回一个值.因此没有三元运算符(condition?then:else),因为普通的if在这个角色中工作正常.
这并不能说服我.因为Kotlin支持Elvis operator哪个普通如果在那个角色也可以正常工作.
我觉得ternary operator有时候比平常更好if,不过我想知道Kotlin为什么不支持ternary operator?