[2]二元運算符 ?:

前言

在上篇文章中,我們介紹了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

四.需要注意項

還有 46% 的精彩內(nèi)容
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
支付 ¥3.00 繼續(xù)閱讀

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容