在Kotlin中,与这个表达式等价的是什么?
a ? b : c
这在Kotlin中是无效的代码。
在Kotlin中,与这个表达式等价的是什么?
a ? b : c
这在Kotlin中是无效的代码。
当前回答
Java
int temp = a ? b : c;
相当于Kotlin:
var temp = if (a) b else c
其他回答
您可以在Kotlin中以多种方式实现它
如果使用 如果(a) b else c 使用时 当(a) { True ->打印("value b") 错误->打印("value c") Else -> { 打印("在任何其他情况下默认返回") } } 空安全 Val a = b ?: c
在Kotlin中,你可以像这样使用三元运算:"add b" else "add c"
另一种简单的方法
val value : String = "Kotlin"
value ?: ""
这里kotlin本身检查空值,如果它为空,则传递空字符串值。
Kotlin没有三元运算符。你可以使用正则if表达式,如下所示:
If (condition) exp1 else exp2
此外,在Kotlin中if不是语句而是表达式(即它计算为一个值),如果在if分支的主体中有多条语句(或else或else if的主体),块的最后一行就是该分支的值。例如:
if (a>b) {
println("a is greater than b")
a // value of this if
} else {
println("b is greater than a")
b // value of else
}
Java中等价的三元运算符
a ? b : c
是一个简单的IF在Kotlin一行
if(a) b else c
没有三元操作符(条件?然后:else),因为 普通的如果在这个角色中表现得很好。
https://kotlinlang.org/docs/reference/control-flow.html#if-expression
Null比较的特殊情况
你可以使用Elvis运算符
if ( a != null ) a else b
// equivalent to
a ?: b