Лучшее объявление константы с сгенерированным значением - PullRequest
0 голосов
/ 18 сентября 2018

Какое объявление было бы лучше в Котлине и почему?

Key здесь всегда одно и то же значение

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

или

private val key = byteArrayOf(some static bytes)

1 Ответ

0 голосов
/ 18 сентября 2018

Если статические байты одинаковы, добавление ленивого делегата ничего не купит.Ленивый полезен, если вычисляемое значение требует некоторых вычислительных усилий (время и / или пространство) или, возможно, не требуется в некоторых случаях.Таким образом, вы захотите инициализировать его только тогда, когда вам это действительно нужно, а не каждый раз.

Фактически, если вам это нужно каждый раз, добавление ленивого делегата просто добавит накладные расходы.Я сделал бы самую простую вещь и пошел бы за ленивым делегатом, только если бы обнаружил, что он поможет в тестировании или тестировании.

TLDR: придерживайтесь инициализации массива напрямую, если он вам не нужен каждый раз Итребует серьезных ресурсов для создания.

...