lazy

Kotlin 中的 lazy 在 Kotlin 中,lazy 是一个用于延迟初始化属性或值的函数。这意味着一个属性的值直到第一次被访问时才会被计算。这在以下场景中非常有用: 性能优化: 如果一个对象的创建成本很高,但它不总是立即需要,那么 lazy 可以避免不必要的计算,从而提高应用程序的启动速度或响应能力。 资源管理: 当初始化某个对象会占用大量资源(例如,数据库连接、文件句柄等)时,使用 lazy 可以确保这些资源只在真正需要时才被分配。 处理循环依赖: 在某些复杂对象模型中,可能存在对象之间的循环依赖。lazy 有时可以帮助解决这种问题,因为它允许你推迟一个对象的初始化,直到另一个对象已经完全构建。 lazy 的基本用法 lazy 函数接受一个 lambda 表达式作为参数,这个 lambda 表达式定义了如何计算被延迟初始化的值。它返回一个 Lazy<T> 实例,你可以通过调用其 value 属性来获取实际的值。 val myLazyValue: String by lazy { println("正在初始化 myLazyValue...") "这是一个延迟初始化的字符串" } fun main() { println("程序开始运行") println(myLazyValue) // 第一次访问,会触发初始化 println(myLazyValue) // 第二次访问,直接使用已初始化的值 } 输出: 程序开始运行 正在初始化 myLazyValue... 这是一个延迟初始化的字符串 这是一个延迟初始化的字符串 从上面的输出可以看出,“正在初始化 myLazyValue…” 这句话只打印了一次,证明了 myLazyValue 只在第一次访问时才被初始化。

July 2, 2025 · 1 min