Kotlin 待研究问题
lateinit
和lazy
的区别
lateinit
是一个修饰符,用于延迟初始化变量,通常用于非空类型的属性。它允许在稍后的时间点初始化变量,而不是在声明时立即赋值。lazy
是一个函数,用于延迟计算变量的值。它通常用于只读属性,并且在第一次访问时才会计算值。lateinit
变量可以在任何时候被重新赋值,而lazy
变量一旦被计算后就不能再改变。lateinit
变量必须是可变的(var),而lazy
变量通常是不可变的(val)。lateinit
变量在访问之前必须被初始化,否则会抛出异常,而lazy
变量在第一次访问时会自动计算并返回值。lateinit
变量可以用于任何类型的属性,而lazy
变量通常用于只读属性。lateinit
变量可以在类的构造函数中初始化,而lazy
变量通常在类的主体中定义。lateinit
变量可以用于非空类型的属性,而lazy
变量通常用于可空类型的属性。