在java中为了防止对象为空时出现的错误,通常会在代码中加入非空判断
if(object != null){
object.xxx();
}
kotlin中 不可空类型的变量一定不会是null,所以可以放心的拿去用 ^
可空类型的变量不能直接进行操作
image.png
虽然str2已经被赋值为“abc”,还是不能直接使用,只因为str2是可空类型的
可空类型使用方式
if 判断
与java相同
image.png
经过判断后 str2由 String?类型 自动转换成了String类型。
安全调用符 ?.
如果?.前的对象不为null正常执行,如果为null那么表达式直接返回null
image.png
非空断言 !!
如果可以保证可空类型的值一定不为空,可以使用"!!"操作符。
但是当可空类型的值为null同时使用"!!"操作符进行操作就会出现空指针异常
image.png
Elvis 操作符 ?:
如果 Elvis运算符左侧不为null则执行左侧,如果为null执行右侧
赋值.png
return.png