by lazy 的作用
by 是在kotlin中代表者委托, lazy 懒加载
by lazy 就是委托延时处理
下面写一个demo说明下
新建一个类
class ExportController {fun getName(): String? {return "name";}fun getAge(): Int {return 18;}}
在mian中如下
class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.main_layout)val exportController by lazy { ExportController() }exportController.getName();exportController.getAge();}}
在这种demo中 通过 by lazy 懒加载的ExportController,当exportController
第一次被访问时,会调用ExportController。
总结:
只有在首次访问exportController
属性时,才会调用ExportController
来创建这个实例。之后的访问都将直接返回已经创建好的ExportController
实例,避免了不必要的重复初始化。