lateinit和 by lazy有什么区别?
何时使用 lateinit 初始化 | 何时使用 Lazy(延迟) 初始化 |
---|---|
如果变量是可变的,并且可以在稍后阶段初始化。 | 只有你调用它的时候,变量才会被初始化。 |
你能确定在使用变量之前,一定会初始化它。 | 初始化变量一次;然后在整个代码中使用相同的值。lazy关键词是线程安全的 |
使用 var 关键字。 | 在 val 属性的情况下使用,即,作为同一对象的只读属性将在整个程序中共享。 |
Kotlin Lazy vs Lateinit Properties. When to use which property?