前言
在上篇文章中,我们介绍了kotlin
中算数运算的相关知识,大家想了解的可参看以下文章
[1]Kotlin中的算数运算
接下来我们来学习一下kotlin
中二元运算符 ?:
的相关知识。涉及内容有:
1.if-else
逻辑
2.?:
的理解及特定if-else
逻辑到?:
演变
3.?:
的使用示例
4.需要注意项
一.if-else
逻辑
在日常编码中,我们经常会使用到if-else
逻辑,如:
object MainClass {
@JvmStatic
fun main(args: Array<String>) {
var letter: String? = "a"
var result = if (letter != null) {
letter
} else {
"b"
}
println("result=$result") //打印: result=a
var number:Int=7
var value = if (number!=6) {
number
} else {
9
}
println("value=$value") //打印: value=7
}
但有些时候,if-else
逻辑可以用更简洁的方式表达,那就是二元运算符 ?:
二.?:
的理解及特定if-else
逻辑到?:
演变
?:
当第一个操作为真则返回第一个操作数,否则返回第二个操作数。以
var temp2 = "p"
var result2 = temp2 ?: 1
println("result2=$result2")
为例,当temp2
不为null
时,result2 ="p"
,当temp2=null
时,result2 =1
所以上面
var letter: String? = "a"
var result = if (letter != null) {
letter
} else {
"b"
}
println("result=$result") //打印: result=a
可以简化为
var letter: String? = "a"
var result = letter ?: "b"
println("result=$result") //打印: result=a
三. ?:
的使用示例
下面给出一些?:
的使用示例:
object MainClass {
@JvmStatic
fun main(args: Array<String>) {
var temp1 = null
var result1 = temp1 ?: 1
println("result1=$result1")
var temp2 = "p"
var result2 = temp2 ?: 1
println("result2=$result2")
var flag = false
var result3 = flag ?: "abc"
println("result3=$result3")
var temp4 = ""
var result4 = temp4 ?: -1
println("result4=$result4")
var temp5 = "efg"
var result5 = temp5 ?: 0
println("result5=$result5")
}
}
运行结果为:
result1=1
result2=p
result3=false
result4=
result5=efg