Kotlin 中的 null safety
在编程语言中空引用(Null Reference)一直是一个不太好的概念。空引用带来了一系列的麻烦,在 2016 年的 QCon 中 Tony Hoare 博士将空引用称作 十亿美元的错误 。 本次主要介绍一些常见的处理 null 的方式,特别是 kotlin 中的方案: null 带来的问题 常见的 null 处理方案 kotlin 中的方案 从历史上看,在编程语言中空引用(Null Reference)一直是一个不太好的概念。空引用最早在 1964 年由 Tony Hoare 博士 发明,随后的主流语言中都延续了空引用的使用,包括 C、C++、 Java、C# 等。空引用在编程中带来了一系列的麻烦,在 2016 年的 QCon 中 Tony Hoare 博士将空引用称作 十亿美元的错误(The Billion Dollar Mistake) 。 Null 带来的问题 破坏类型系统 静态检查的编程语言可以由编译器确保类型正确,不需要等到运行时实际执行代码。 例如在 Java 中当我们写下 x.toUpperCase() , 编译器会检查 x 的类型。如果 x 得类型是 String , 那么检查通过;如果是其他类型,比如 Servlet , 那么检查失败。 静态类型检查在编写大型的复杂软件时会提供强大的帮助。但是在 Java 中,由于任何引用都可以是 Null