Better

业精于勤荒于嬉

Idiomatic kotlin: Elvis Operator

Better's Avatar 2019-06-15 Kotlin

  1. 1. Bummock
  2. 2. 参考

Elvis Operator 暂时没有找到好的中文翻译,暂时就叫做 Elvis 操作符。
kotlin 中 Elvis operator 是用来做 Null 检查的,空检查操作符。有点像 Java 中的三目运行?
kotlin 中变量的类型只有两种,一个是非空的比如val a:User,一个是可空的val a:User?
为了避免发生NullPointException,对于一个可空的变量,在使用的时候需要做非空判断
常见的非空判断

1
2
3
4
5
6
7
8
// 
a?.name = ""
//
a?.let{ it.name = "" }
//
val name = a?.name ?: "default"
//
lateinit var a :String

Bummock

1
val name = a?.name ?: "default"

编译后的Java 代码:

1
2
3
if (user == null || user.getName() == null) {
String var10000 = "default";
}

编译后的 Java 代码做了非空的校验

参考

Idiomatic kotlin: elvis operator

This article was last updated on days ago, and the information described in the article may have changed.