Elvis Operator 暂时没有找到好的中文翻译,暂时就叫做 Elvis 操作符。
kotlin 中 Elvis operator 是用来做 Null 检查的,空检查操作符。有点像 Java 中的三目运行?
。
kotlin 中变量的类型只有两种,一个是非空的比如val a:User
,一个是可空的val a:User?
。
为了避免发生NullPointException
,对于一个可空的变量,在使用的时候需要做非空判断
常见的非空判断
1 | // |
Bummock
1 | val name = a?.name ?: "default" |
编译后的Java 代码:
1 | if (user == null || user.getName() == null) { |
编译后的 Java 代码做了非空的校验