【问题标题】:Better declaration of a constant with generated value更好地声明具有生成值的常量
【发布时间】:2018-09-18 12:01:30
【问题描述】:

在 Kotlin 中哪种声明会更好,为什么?

Key 这里总是相同的值

private val key: ByteArray by lazy {
    byteArrayOf(some static bytes)
}

或者

private val key = byteArrayOf(some static bytes)

【问题讨论】:

    标签: android performance kotlin lazy-evaluation


    【解决方案1】:

    如果静态字节相同,添加惰性委托不会给您带来任何好处。如果要计算的值需要一些计算工作(时间和/或空间),或者在某些情况下可能不需要,那么惰性是很有用的。所以你只想在真正需要的时候初始化它,而不是每次。

    事实上,如果您确实每次都需要它,那么添加惰性委托只会增加开销。我会做最简单的事情,只有在我发现它有助于通过基准测试或测试时才选择懒惰的代表。

    TLDR:坚持直接初始化数组,除非你不是每次都需要它并且需要大量资源来创建。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      相关资源
      最近更新 更多