当前位置: 代码迷 >> 综合 >> Kotlin学习系列——lateinit 和 by lazy
  详细解决方案

Kotlin学习系列——lateinit 和 by lazy

热度:70   发布时间:2023-09-15 04:31:33.0

阅读:Null检查机制及lateinit与by lazy(委托机制)的应用
https://blog.csdn.net/Shenpibaipao/article/details/76974461

lateinit 和 lazy 是 Kotlin 中的两种不同的延迟初始化的实现

lateinit 只用于变量 var,而 lazy 只用于常量 val
lazy 应用于单例模式(if-null-then-init-else-return),而且当且仅当变量被第一次调用的时候,委托方法才会执行。

lazy()是接受一个 lambda 并返回一个 Lazy <T> 实例的函数,返回的实例可以作为实现延迟属性的委托: 第一次调用 get() 会执行已传递给 lazy() 的 lambda 表达式并记录结果, 后续调用 get() 只是返回记录的结果。