一、空安全概念 总结一下,Kotlin引入了空安全的概念,并在编译时开展变量是否为空的校验。相关的操作符说明概括如下: (1)声明变量实例时,在类型名称后面加问号,表示该变量可以为空。 (2)调用变量方法时,在变量名称后面加问号,表示一旦变量为空就返回null。 (3)新引入运算符“?:”,表示一旦变量为空,就返回该运算符右边的表达式。 (4)新引入运算符“!!”,通知编译器不做非空校验。如果运行时发现变量为空,就扔出异常。
二、const有无修饰添加的区别 (1)const val 修饰的属性相当于java中的public final static修饰的常量,可以通过类名直接访问。 (2)val 修饰的属性相当于java中private final static修饰的常量,由于可见行为private,所以只能通过生成getter方法访问。 (3)出于性能考虑,使用const val方式可以避免频繁函数调用。 (4)const只能修饰val,不能修饰var类型变量。const 只允许在top-level级别和object(伴随对象companion也是obejct)中声明。