更好地声明具有生成值的常量

Better declaration of a constant with generated value

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

Key 这里总是相同的值

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

或者

private val key = byteArrayOf(some static bytes)

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

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

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