代码之家  ›  专栏  ›  技术社区  ›  cluster1

懒惰属性有什么好处?他们的目标是什么?

  •  0
  • cluster1  · 技术社区  · 1 年前

    懒惰财产的目的是什么?

    Kotlin语言文档: https://kotlinlang.org/docs/delegated-properties.html#lazy-properties

    节省内存?还是别的什么?

    1 回复  |  直到 1 年前
        1
  •  3
  •   gidds    1 年前

    几个相关因素中的一个或多个可能:

    • 正如您所建议的,该值可能需要大量内存来存储。

    • 生成该值可能需要花费大量时间/精力(例如CPU负载和/或对外部服务的调用)。

    • 该值可能会过时。

    • 在实例构造完成之前(可能在一些构造后设置之后),可能无法生成值。

    其中一些原因纯粹是为了效率。对于这些,您需要考虑一些因素,例如需要该值的可能性有多大,生成该值可能需要多长时间,施工时的延迟是否比首次使用该值时的延迟更重要,等等。

    但其他原因可能会影响程序是否运行以及如何运行,因此,懒惰可能是必要的。

    无论哪种方式,拥有一种简单、简洁、健壮的方法来实现懒惰属性都是Kotlin的一个非常有用的补充。(特别是因为它可以在标准库中完成,而不会影响语言本身。)