我一直很好奇为什么与 Java
相比 Kotlin
具有更多的附加功能却没有像 Java
那样的三元运算符。
Kotlin官方文档给了我这个答案,以下是kotlin官方文档中给出的原因:
In Kotlin, if is an expression: it returns a value. Therefore, there is no ternary operator (condition ? then : else) because ordinary if works fine in this role.
var max = a
if (a < b) max = b
// With else
var max: Int
if (a > b) {
max = a
} else {
max = b
}
// As expression
val max = if (a > b) a else b
所以,我们可以从例子中看到,满足了三元运算符的功能,为什么需要一个额外的运算符。
如果您将 if
用作表达式,例如,用于返回其值或将其分配给变量,则 else
分支是必需的。
参见: https://kotlinlang.org/docs/control-flow.html#if-expression