迅捷的懒惰属性

什么是惰性关键字?

lazy关键字使您可以延迟存储属性的初始化,直到首次访问它为止。 您只能在结构或类中使用惰性。

//如果尝试在结构或类之外的属性上使用惰性,编译器会吐出错误: 惰性仅对结构或类的成员有效

您为什么要使用它?

有时无法初始化存储的属性,因为其值取决于尚未初始化的代码的其他部分,或者应在首次访问该属性之前不进行初始化,以便节省内存并提高速度甚至防止您的应用崩溃(例如从数据库中获取和/或排序数据)

在类中使用惰性属性

要看的东西:

  • 惰性关键字 :使用此关键字延迟变量的初始化
  • 使用闭包 :由于该属性的目的是延迟某些代码的执行,并且计算后的属性不能进行延迟初始化,因此我们使用闭包来初始化对象
  • ()在闭包末尾:这是闭包自身执行的方式。 如果不使用(),则只能将闭包分配给该变量而不执行它
  • 初始化importFromDatabase类时,不会初始化lazy属性
  • 当您调用lazy属性时,闭包将被执行

我在学习有关此问题时遇到了一些问题:

  • 可以将lazy与常量一起使用吗? 不,您不能这样做,因为惰性属性的值仅在初始化后才计算,而常量则需要一个值
  • 它对计算属性起作用吗? 不可以,因为总是重新计算一个计算属性,而惰性属性在初始化时仅计算一次。
  • 为什么使用闭包? 由于该属性旨在执行代码,因此闭包是必经之路
  • 为什么要使用惰性属性? 初始化对象时延迟执行代码