当前位置:嗨网首页>书籍在线阅读

39-Elvis操作符

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

4.10.3 Elvis操作符

Elvis操作符很像Java语言的三目表达式,是三目条件运算符的简略写法。Kotlin对三目表达式进行了升级,升级的Elvis操作符不再支持传统的三目表达式,而是使用了一种全新的语法,其语法格式如下。

<结果> = <表达式1> ?: <表达式2>

如果表达式1为空,则返回表达式2的内容;否则返回表达式1的内容。也就是说,当且仅当表达式1为空时,才会对表达式2求值。对于Kotlin的 Elvis操作符可以像以下这么理解。

  • A ?: B等价于if(A == null) B。
  • A?.B ?: C等价于if(A != null) A.B else C。
// Elvis操作符获取b字符串的长度,如果b为null,则返回-1
    var b = "hello world"
    val lenB = b?.length ?: -1
    val lenA: Int = if (b != null) {
        b.length
    } else {
        -1
    }
    println(lenA)    //输出11

同时,在空检查方面,Elvis操作符还可以配合安全调用符使用,实现清晰的空检查和空操作判断。