《Kotlin基础3》关键字:lateinit和by lazy

lateinit:延迟初始化

java:

private LoginPresenter loginPresenter;

kotlin:

private lateinit var loginPresenter: LoginPresenter

by lazy:惰性初始化
惰性初始化是一种常见的模式,直到第一次访问该属性的时候,才根据需要创建对象的一部分,当初始化过程消耗大量资源并且在使用对象时并不总是需要数据时,这个非常有用

val nameB: String by lazy {
    
    
    println("getLazy")
    "123"
}
println(nameB)
println(nameB)

输入结果:

System.out: getLazy
System.out: 123
System.out: 123

首先需要注意的是:

  • by lazy只能作用于val关键字标注的属性
  • 当属性用到的时候才会初始化“lazy{}”里面的内容
  • 而且再次调用属性的时候,只会得到结果,而不会再次执行lazy{}的运行过程

猜你喜欢

转载自blog.csdn.net/qq_35091074/article/details/123308074