简述
在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的一个很重的特性,在编程中应用很广泛,这样开发出来的程序更安全。本次学习就到这里,进入下个章节。