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

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.lryc.cn/news/528207.html

相关文章:

  • Electron学习笔记,安装环境(1)
  • 将 OneLake 数据索引到 Elasticsearch - 第 1 部分
  • 【C++】STL介绍 + string类使用介绍 + 模拟实现string类
  • Hive:基本查询语法
  • 日志收集Day008
  • 【解决方案】VMware虚拟机adb连接宿主机夜神模拟器
  • 基于金融新闻的大型语言模型强化学习在投资组合管理中的应用
  • 脚本运行禁止:npm 无法加载文件,因为在此系统上禁止运行脚本
  • 借DeepSeek-R1东风,开启创业新机遇
  • C# lock使用详解
  • 简易CPU设计入门:控制总线的剩余信号(四)
  • 使用 lock4j-redis-template-spring-boot-starter 实现 Redis 分布式锁
  • 22_解析XML配置文件_List列表
  • 编译器gcc/g++ --【Linux基础开发工具】
  • 58.界面参数传递给Command C#例子 WPF例子
  • games101-(5/6)
  • 人工智能在计算机视觉中的应用与创新发展研究
  • 1-2 飞机大战游戏场景
  • Mac Electron 应用签名(signature)和公证(notarization)
  • Sklearn 中的逻辑回归
  • 【阅读笔记】New Edge Diected Interpolation,NEDI算法,待续
  • 编程题-最长的回文子串(中等)
  • Versal - 基础3(AXI NoC 专题+仿真+QoS)
  • 知识库建设对提升团队协作与创新能力的影响分析
  • Java 实现Excel转HTML、或HTML转Excel
  • stack 和 queue容器的介绍和使用
  • 云计算与虚拟化技术讲解视频分享
  • python flask 使用 redis写一个例子
  • 深入解析 Linux 内核内存管理核心:mm/memory.c
  • 跟我学C++中级篇——64位的处理