Sobes.tech
Middle

Kādus standarta deleģentus jūs zināt?

sobes.tech AI

Atbilde no AI

  • by lazy — tiek izmanto, lai atliktu īpašības kavēto inicializāciju. Vērtība tiek aprēķināta pirmreizējās piekļuves laikā un tiek kešota.
    val lazyValue: String by lazy {
        println("initialized") // Tiek izpildīts tikai pirmreizējās piekļuves laikā
        "Hello"
    }
    
  • Delegates.observable — delegāts, kas ļauj veikt darbību katru reizi, mainoties īpašības vērtībai.
    import kotlin.properties.Delegates
    
    var name: String by Delegates.observable("sākotnējā vērtība") {
        prop, old, new ->
        println("${prop.name} vērtība mainījās no $old uz $new")
    }
    
  • Delegates.vetoable — delegāts, kas ļauj noķert īpašības vērtības izmaiņas un tās anulēt atkarībā no noteikta nosacījuma.
    import kotlin.properties.Delegates
    
    var age: Int by Delegates.vetoable(10) {
        prop, old, new ->
        new >= 0 // Tiek atļautas tikai nenegatīvas vērtības
    }