当前位置: 首页 > article >正文

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表达式*/


http://www.kler.cn/a/522998.html

相关文章:

  • MySQL通过binlog恢复数据
  • 【PySide6快速入门】QLineEdit 输入框
  • 腾讯云开发提供免费GPU服务
  • 微服务(一)
  • 软考信安27~Windows操作系统安全相关
  • 为AI聊天工具添加一个知识系统 之71 详细设计 之12 形式文法、范式语法和惯式用法
  • 【Unity3D】实现Decal贴花效果,模拟战旗游戏地形效果
  • 基于物联网设计的疫苗冷链物流监测系统
  • 【反悔堆】【hard】力扣630. 课程表 III
  • 基于多智能体强化学习的车联网通信中时间敏感网络的路由和调度模型
  • 【漫话机器学习系列】066.贪心算法(Greedy Algorithms)
  • 物业巡更系统在现代社区管理中的优势与应用探讨
  • 深入解析 Linux 内核内存管理核心:mm/memory.c
  • 【C++】设计模式详解:单例模式
  • 青少年编程与数学 02-007 PostgreSQL数据库应用 18课题、性能监控
  • 穿心莲内酯(andrographolide)生物合成CYP72-文献精读106
  • Go:基于Go实现一个压测工具
  • neo4j-community-5.26.0 install in window10
  • 学习数据结构(3)顺序表
  • 简易CPU设计入门:控制总线的剩余信号(四)
  • 原生 Node 开发 Web 服务器
  • 一个基于Python+Appium的手机自动化项目~~
  • 【面试】【前端】【性能优化】前端性能优化总结
  • 用XAMPP安装PHP环境(Window系统)
  • [c语言日寄]越界访问:意外的死循环
  • 网络仿真工具Core环境搭建