Sobes.tech
Junior — Middle

Qual è il ruolo della proprietà 'by lazy' in Kotlin e in quali scenari è appropriato il suo utilizzo?

sobes.tech AI

Risposta dell'AI

In Kotlin, una proprietà con il modificatore by lazy viene inizializzata in modo pigro, cioè il valore viene calcolato solo al primo accesso alla proprietà, e non alla creazione dell'oggetto. Questo è utile quando l'inizializzazione è dispendiosa in termini di risorse o non sempre necessaria.

Esempio di utilizzo:

val heavyResource by lazy {
    println("Inizializzazione")
    "Risultato"
}

fun main() {
    println("Prima dell'accesso")
    println(heavyResource) // Qui avviene l'inizializzazione
    println(heavyResource) // Non avviene un'altra inizializzazione
}

Scenari di utilizzo:

  • Inizializzazione differita di oggetti che non sono sempre necessari.
  • Ottimizzazione delle prestazioni.
  • Inizializzazione sicura in ambienti multithread (per impostazione predefinita, lazy è thread-safe).