Когда значение объявляется "lazy" в Kotlin, эта фраза всегда необязательна? - PullRequest
0 голосов
/ 25 марта 2020

Если я просто удаляю все «ленивые» инициализации в программе Kotlin, будет ли программа сохранять ту же семантику? Под той же семантикой я имею в виду программные логы c, которые останутся прежними, хотя различные инициализации могут происходить в другое время или в последовательности, чем раньше.

1 Ответ

2 голосов
/ 25 марта 2020

Пока у вашей программы какие-то побочные эффекты, ответ - нет.

Итак, краткий ответ на ваш вопрос - нет. Пример

class Foo {
  var anyValue: String = ""

  private val bar by lazy { Bar(anyValue) }

   /**
   * Here depending when this method get called the value of
   * anyValue may have changed so the behavior of bar.
   */
  fun doSomeThingWithBar(){
      bar.doSomething()
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...