cluster1 Asked: 2024-07-27 20:43:34 +0800 CST2024-07-27 20:43:34 +0800 CST 2024-07-27 20:43:34 +0800 CST 惰性属性有什么用处?它们的作用是什么? 772 惰性属性的目的和目标是什么? Kotlin 语言文档:https://kotlinlang.org/docs/delegated-properties.html#lazy-properties 节省内存?还是其他原因? kotlin 1 个回答 Voted Best Answer gidds 2024-07-27T20:55:10+08:002024-07-27T20:55:10+08:00 以下一个或多个相关因素可能存在: 正如您所说,该值可能需要大量内存来存储。 该值可能需要花费大量时间/精力来生成(例如 CPU 负载和/或对外部服务的调用)。 该值可能已经过时。 直到实例构造完成后(也可能是在某些构造后设置之后)才可以生成该值。 其中一些原因纯粹与效率有关。对于这些,您需要考虑以下因素:需要该值的可能性有多大、生成该值需要多长时间、构造时的延迟是否比首次使用该值的延迟更重要或更不重要,等等。 但是其他原因也会影响程序是否运行以及如何运行,因此对于这些原因来说,懒惰可能是必要的。 无论如何,拥有一种简单、简洁、强大的方法来实现惰性属性对于 Kotlin 来说是一个非常有用的补充。(尤其是它可以在标准库中完成,而不会影响语言本身。)
以下一个或多个相关因素可能存在:
正如您所说,该值可能需要大量内存来存储。
该值可能需要花费大量时间/精力来生成(例如 CPU 负载和/或对外部服务的调用)。
该值可能已经过时。
直到实例构造完成后(也可能是在某些构造后设置之后)才可以生成该值。
其中一些原因纯粹与效率有关。对于这些,您需要考虑以下因素:需要该值的可能性有多大、生成该值需要多长时间、构造时的延迟是否比首次使用该值的延迟更重要或更不重要,等等。
但是其他原因也会影响程序是否运行以及如何运行,因此对于这些原因来说,懒惰可能是必要的。
无论如何,拥有一种简单、简洁、强大的方法来实现惰性属性对于 Kotlin 来说是一个非常有用的补充。(尤其是它可以在标准库中完成,而不会影响语言本身。)