gpt4 book ai didi

android - kotlin 中lazy{} 与 getter() 初始化之间的区别

转载 作者:行者123 更新时间:2023-12-02 16:31:16 26 4
gpt4 key购买 nike

在 kotlin 中,我们可以使用 lazy{}getter() 这两种方法

延迟初始化:

internal val connector by lazy {
serviceConnector
}

getter():

internal val connector : ServiceConnector
get() = serviceConnector

何时使用哪种方法以及这两种方法的实际作用是什么。哪一种是最好的方法?

最佳答案

当您使用lazy委托(delegate)时,val仅在您第一次使用时才会初始化。因此,在您的代码中,第一次访问 connector 时,将运行 lambda 内的代码,并将结果分配给 val

相反,

get() 用于重新定义尝试访问 val 时发生的情况。

关于android - kotlin 中lazy{} 与 getter() 初始化之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210956/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com