Middle
Jakich standardowych delegatów znasz?
sobes.tech AI
Odpowiedź od AI
by lazy— używany do opóźnionej inicjalizacji właściwości. Wartość jest obliczana przy pierwszym odwołaniu się do właściwości i jest buforowana.val lazyValue: String by lazy { println("initialized") // Wykona się tylko przy pierwszym odwołaniu "Hello" }Delegates.observable— delegat, który pozwala wykonać akcję przy każdej zmianie wartości właściwości.import kotlin.properties.Delegates var name: String by Delegates.observable("wartość początkowa") { prop, old, new -> println("Wartość dla ${prop.name} zmieniła się z $old na $new") }Delegates.vetoable— delegat, który pozwala przechwycić zmianę wartości właściwości i ją anulować na podstawie warunku.import kotlin.properties.Delegates var age: Int by Delegates.vetoable(10) { prop, old, new -> new >= 0 // Dozwolone są tylko nieujemne wartości }