Middle
Milliseid standardesed delegaate teate?
sobes.tech AI
Vastus AI-lt
by lazy— kasutatakse omaduse hilinenud initsialiseerimiseks. Väärtus arvutatakse esimesel viitel omadusele ja salvestatakse vahemällu.val lazyValue: String by lazy { println("initialized") // Toimib ainult esimesel viitel "Hello" }Delegates.observable— delegaat, mis võimaldab iga omaduse väärtuse muutmisel teha tegevust.import kotlin.properties.Delegates var name: String by Delegates.observable("algväärtus") { prop, old, new -> println("${prop.name} väärtus muutus ${old}lt ${new}ni") }Delegates.vetoable— delegaat, mis võimaldab vahele võtta omaduse väärtuse muutmise ja selle tühistada teatud tingimuse põhjal.import kotlin.properties.Delegates var age: Int by Delegates.vetoable(10) { prop, old, new -> new >= 0 // Lubatud ainult mitte-negatiivsed väärtused }