Kotlin判空辅助工具
1)?.操作符
//执行逻辑
if (person != null) {
person.doSomething()
}
//表达式
person?.doSomething()
2)?:操作符
//执行逻辑
val c = if (a != null) {
a
} else {
b
}
//表达式
val c = a ?: b
3)!!表达式
var message: String? = "Hello!"
fun main() {
if (message != null) {
printUpperCase()
}
}
fun printUpperCase() {
println(message!!.toUpperCase())
}
/*解释:此处message为可空类型,但在主函数中已进行空值判定;
因而在调用printUpperCase方法时,message不可能为空值;
故而在其末尾加上!!操作符,知会编译器此处不再做空值检查*/
4)let函数
let函数搭配是?.操作符,在存在多次调用时,可以显著减少目标对象的调用次数
fun study(student: Student) {
student?.let {
it.preview()
it.takeNotes()
it.review()
}
}
/*解释:这里在?.操作符判定student不为空值后,
调用let函数并将student作为参数传入Lambda表达式*/