Kotlin 空安全检查机制,有多种处理方式。
可以使用 !! 符号,抛出异常
可以使用 ? 认可NULL
对 NULL 可以不做处理,也可以再配合 ?: 做空判断处理
var age:Int? = 27 //可以为空的 age
val age1 = age!!.toInt() //为空则抛出异常
val age2 = age?.toInt() //为空则返回null
var age3 = age?.toInt() ?: -1 //为空则返回 -1
常见的有函数返回值,如果不是整数就是NULL,那么函数可以写成
fun getNum() :Int? {
...
}
示例演示一下值为null的函数处理
fun addNew(x: Int?, y: Int?): Int? {
if (x != null && y != null) {
return x + y
}else if (x != null){
return x
} else if (y != null){
return y
}
return null
}
调用方法
println(addNew(3,5))
println(addNew(null,5))
println(addNew(3,null))
println(addNew(null,null))
运行结果
8
5
3
null
可见这个 addNew 函数,对输入的参数进行了 null 判断。如果都为 null,就返回 null;如果有一个值为 null,就返回另一个值;如果都不为null,就返回和值。