多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 可空性 现代编程语言包括Kotlin 解决这类问题的方法是把运行时的错误转变成编译期的错误。通过支持作为类型系统的一部分的可空性,编译器就能在编译期发现很多潜在的错误,从而减少运行时抛出异常的可能性。 ## Kotlin相比于Java (Kotlin 对可空类型的显式的支持) | 相比于java | 描述                | | ------- | ----------------- | | 新增      | **新增的null机制,有效避免空指针** | | 增强      | **Kotlin代码中不会出现大量的非空判断** | Kotlin为什么引入了Null机制?Java程序员都知道,在开发过程中经常遇到空指针异常,如果不处理合理,就会引起程序的crash(崩溃)。**为了尽可能的避免空指针异常(NullPointerException简称NPE)的出现,Kotlin引入了Null机制**。【**Kotlin相比于Java,有效避免了空指针异常**】。 **null机制总结起来,依靠就是把变量分为了可空类型和不可空类型**。 可空类型和不可空类型在变量赋值和调用方面有了各自的限制。汇总如下表: | 变量类型| 描述\ | 限制                              | | ------------ | ----------- | ---------------------------------------- | | 非空类型         | 变量肯定不会为null | 非空类型变量,不能赋值为null                         | | 可空类型         | 变量可能为null   | **可空类型变量,可空类型的变量不能直接使用,可以通过非空判断  ?.  !!使用** | >[info]注意:可空的和非空的对象在运行时没有什么区别;可空类型并不是非空类型的包装。所有的检查都发生在编译期。这意味着使用Kotlin 的可空类型并不会在运行时带来额外的开销。 当然直接通过上面的表不能很好的去理解。我们可以通过`“?”、“?.”、“!!”、“?:”`4个符号去理解null机制。