Sobes.tech
Junior — Middle

Care este rolul proprietății 'by lazy' în Kotlin și în ce scenarii este potrivită utilizarea acesteia?

sobes.tech AI

Răspuns de la AI

În Kotlin, o proprietate cu modificatorul by lazy este inițializată leneș, adică valoarea este calculată doar la prima accesare a proprietății, nu la crearea obiectului. Acest lucru este util atunci când inițializarea consumă resurse sau nu este întotdeauna necesară.

Exemplu de utilizare:

val heavyResource by lazy {
    println("Inițializare")
    "Rezultat"
}

fun main() {
    println("Înainte de acces")
    println(heavyResource) // Aici are loc inițializarea
    println(heavyResource) // Nu are loc o inițializare repetată
}

Scenarii de utilizare:

  • Inițializare întârziată a obiectelor care nu sunt întotdeauna necesare.
  • Optimizarea performanței.
  • Inițializare sigură în mediile multi-thread (implicit, lazy este sigur pentru fire).