Middle
Quali delegati standard conosci?
sobes.tech AI
Risposta dell'AI
by lazy— viene utilizzato per l'inizializzazione ritardata di una proprietà. Il valore viene calcolato alla prima referenza alla proprietà e memorizzato nella cache.val lazyValue: String by lazy { println("initialized") // Verrà eseguito solo alla prima referenza "Hello" }Delegates.observable— delegato che permette di eseguire un'azione ad ogni modifica del valore della proprietà.import kotlin.properties.Delegates var name: String by Delegates.observable("valore iniziale") { prop, old, new -> println("Il valore di ${prop.name} è cambiato da $old a $new") }Delegates.vetoable— delegato che permette di intercettare il cambiamento del valore di una proprietà e di annullarlo in base a una condizione.import kotlin.properties.Delegates var age: Int by Delegates.vetoable(10) { prop, old, new -> new >= 0 // Sono ammessi solo valori non negativi }