4、Kotlin 中的空安全与类型转换

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 赋值,因为类型被标记为可空
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值