[2]二元运算符 ?:

前言

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

四.需要注意项

还有 46% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥3.00 继续阅读

相关阅读更多精彩内容

友情链接更多精彩内容