Kotlin教程:Elvis运算符(?:)

Elvis运算符(?:)用于返回非null值,即使条件表达式为null。 它还用于检查值的空安全性。

在某些情况下,可以声明一个保存空引用的变量。 假设一个包含空引用的变量str,在程序中使用str之前将检查它的可空性。 如果发现变量str不为null,则其属性将使用,否则使用其他非空值。

var str: String? = null   
var str2: String? = "May be declare nullable string"

在上面的代码中,str包含一个null值,在访问str的值之前需要执行安全检查,字符串是否包含值。 在传统方法中,使用if...else语句执行此安全检查。

var len1: Int = if (str != null) str.length else -1  
var len2:  Int = if (str2 != null) str.length else -1