一、判空和类型相关运算符
1.1、概念
分? 和 ?.和 ?: 和!!和 as?
1.2、可空运算符?
1、在类型后面标识可为空
eg:fun constractStr(str:String?)
1.3、判空运算符?.
1、只有对象非空的时候才执行?.后的对象函数
eg:s?.length
s非空执行s.length获取length,空的话不执行直接返回null
1.4、条件执行运算符?:
1、运算符前面的对象为空就执行运算符后面的表达式,非空直接返回前面的对象
eg: s ?: ""
1.5、断言运算符!!
1、为null的话就抛出异常NullException
eg: s!!
1.6、强制转换安全运算符as?
1、as为强转,不能强转就抛异常;as?则能强转强转,不能强转就返回null