Kotlin 待研究问题

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