前言
在上篇文章中,我們介紹了kotlin中算數(shù)運算的相關(guān)知識,大家想了解的可參看以下文章
[1]Kotlin中的算數(shù)運算
接下來我們來學(xué)習(xí)一下kotlin中二元運算符 ?:的相關(guān)知識。涉及內(nèi)容有:
1.if-else邏輯
2.?:的理解及特定if-else邏輯到?:演變
3.?:的使用示例
4.需要注意項
一.if-else邏輯
在日常編碼中,我們經(jīng)常會使用到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邏輯可以用更簡潔的方式表達(dá),那就是二元運算符 ?:
二.?:的理解及特定if-else邏輯到?:演變
?:當(dāng)?shù)谝粋€操作為真則返回第一個操作數(shù),否則返回第二個操作數(shù)。以
var temp2 = "p"
var result2 = temp2 ?: 1
println("result2=$result2")
為例,當(dāng)temp2不為null時,result2 ="p",當(dāng)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")
}
}
運行結(jié)果為:
result1=1
result2=p
result3=false
result4=
result5=efg