"by lazy"在Android-Kotlin中的应用是什么?

What is the application of "by lazy" in Android-Kotlin?

应该在哪些地方使用by lazy

为什么要使用它?

它如何使代码变得更好

例如:

val currentResult: MutableLiveData<String> by lazy {
          MutableLiveData<String>()
}

In which places should the by lazy be used?

应该在不需要对变量进行不必要的初始化的情况下使用它们。这些是 val 属性,因此在初始化之后,同一个对象将用于 class 的整个 运行。

Why should it be used?

lazy 应该在您的任何 objects 很重并且需要很长时间才能初始化时使用。这里 lazy 属性可以帮助跳过可能由这些对象的初始化引起的延迟。因为lazy只会在调用时初始化变量,否则不会创建。

How does it make the code better

通过延迟加载重对象,它提高了代码的性能,因为加载中的任何延迟(这可能是由于初始化这些重变量而引起的)现在都被消除了。它保持内存空闲,因为这些内存直到此刻才会被初始化,它们被代码调用。