一、空安全概念
总结一下,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)中声明。

网友评论