Kotlin学历之空安全

简述

在java中Null是最常见的陷阱之一,在很多时候不得不写非空判断来增加代码的安全性,随着业务的增长,非空的判断会越来越多,难免会失去控制。kotlin在这个问题上就显得更加的智慧,通过操作符 ?、 !! 来约束可空属性。它是怎么实现的呢?往下看 - -

?操作符

?操作符表示 该属性可能为null ,在使用过程中需要加以判断。

var a: String = "abc"
a =null// 编译错误 根本无法运行

var a: String? = "abc"
a =null// 编译正常

//在使用过程中必须加 判断 不判断编译错误
if(a!=null) print((a as String).length ) else print(-1)
//上面写法有更简单的
a?.length ? : -1 

编译器代码演示

!!操作符

!!操作符 通过下面两次运行比较得出:声明属性b ,可能为空,在直接调用toString函数后控制台打印出null,在使用!!操作符之后直接抛出异常,这就说明在实际应用中,就相当于主动加了throw NullPointerException的异常捕获。

直接toString

使用操作符!!

总结

空安全是kotlin语言区别与java的一个很重的特性,在编程中应用很广泛,这样开发出来的程序更安全。本次学习就到这里,下次再见。