Kotlin 中的空安全与类型转换
1. 严格空安全
在 Java 系统中,缺少空检查是最常见的错误模式, NullPointerException 是 Java 中错误的最大来源。2009 年,托尼·霍尔爵士甚至为发明了空引用而道歉,称其为“十亿美元的错误”。
为了避免 NullPointerException ,我们需要编写防御性代码,在使用对象之前检查其是否为 null。许多现代编程语言,如 Kotlin,采取措施将运行时错误转换为编译时错误,以提高编程语言的安全性。Kotlin 通过在类型系统中添加空安全性机制来实现这一点。
Kotlin 的类型系统区分可以持有 null 的引用(可空引用)和不能持有 null 的引用(非可空引用)。这一特性使我们能够在开发的早期阶段检测到许多与 NullPointerException 相关的错误。编译器和 IDE 会阻止许多 NullPointerException 的发生,在很多情况下,编译会失败而不是应用程序在运行时崩溃。
1.1 可空与非可空类型声明
在 Kotlin 中,默认情况下,常规类型不能为 null,除非显式允许。要存储 null 引用,必须在变量类型声明后添加问号后缀,将变量标记为可空。例如:
val age: Int = null // 错误,此类型不允许为 null
val name: String? = null // 允许 null 赋值,因为类型被标记为可空
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



