Kotlin判空辅助工具

1)?.操作符

Kotlin 复制代码
//执行逻辑
if (person != null) {
    person.doSomething()
}
//表达式
person?.doSomething()

2)?:操作符

Kotlin 复制代码
//执行逻辑
val c = if (a != null) {
    a
} else {
    b
}
//表达式
val c = a ?: b

3)!!表达式

Kotlin 复制代码
var message: String? = "Hello!"

fun main() {
    if (message != null) {
        printUpperCase()
    }
}

fun printUpperCase() {
     println(message!!.toUpperCase())
}

/*解释:此处message为可空类型,但在主函数中已进行空值判定;
因而在调用printUpperCase方法时,message不可能为空值;
故而在其末尾加上!!操作符,知会编译器此处不再做空值检查*/

4)let函数

let函数搭配是?.操作符,在存在多次调用时,可以显著减少目标对象的调用次数

Kotlin 复制代码
fun study(student: Student) {
    student?.let {
        it.preview()
        it.takeNotes()
        it.review()
    }
}

/*解释:这里在?.操作符判定student不为空值后,
调用let函数并将student作为参数传入Lambda表达式*/
相关推荐
网络精创大傻3 小时前
PHP 与 Node.js:实际性能对比
开发语言·node.js·php
snakecy3 小时前
过关斩将编程题
开发语言·python
diannao7204 小时前
实时将大模型的解决方案转换为随机应变的机器人指令
开发语言·windows·python·机器人
Nebula_g4 小时前
C语言应用实例:斐波那契数列与其其他应用
c语言·开发语言·后端·学习·算法
梅梅绵绵冰4 小时前
SpringAOP的相关概念
java·开发语言
Xiaoyu Wang4 小时前
GC垃圾回收
java·开发语言·jvm
陈佳梁5 小时前
构造器(详解)
java·开发语言
Jonathan Star5 小时前
在 JavaScript 中, `Map` 和 `Object` 都可用于存储键值对,但设计目标、特性和适用场景有显著差异。
开发语言·javascript·ecmascript
lly2024065 小时前
Font Awesome 音/视频图标
开发语言
froginwe115 小时前
MongoDB 查询分析
开发语言