加载中...

空引用由 Tony Hoare 于 1965 年在 ALGOL W 中引入,他后来称之为「十亿美元的错误」——空指针解引用(如 Java 的 NullPointerException)长期是最常见的运行时崩溃来源之一。
空安全(null safety)指在类型系统层面区分「可空类型」与「非空类型」:默认引用不可为空,可空性必须显式声明(如 Kotlin 的 String?、Swift 的 Optional、Dart 的 int?),编译器强制在解引用前完成判空或解包,从而把空指针错误从运行时移到编译期。
Kotlin、Swift、Dart(2.12 起的 sound null safety)、C# 8 的可空引用类型都内建此机制;函数式语言则用 Option/Maybe 代数数据类型达到同样效果,从根本上不设 null。
空安全是近十年主流语言类型系统最普及的改进之一,显著降低了一大类线上故障。

登录 后参与讨论
暂无讨论,来发表第一条评论吧