Sobes.tech
Middle

Ce delegați standard cunoști?

sobes.tech AI

Răspuns de la AI

  • by lazy — utilizat pentru inițializarea întârziată a unei proprietăți. Valoarea este calculată la prima referință și este cache-ată.
    val lazyValue: String by lazy {
        println("initialized") // Se va executa doar la prima referință
        "Hello"
    }
    
  • Delegates.observable — delegat care permite executarea unei acțiuni la fiecare schimbare a valorii proprietății.
    import kotlin.properties.Delegates
    
    var name: String by Delegates.observable("valoare inițială") {
        prop, old, new ->
        println("Valoarea pentru ${prop.name} s-a schimbat de la $old la $new")
    }
    
  • Delegates.vetoable — delegat care permite interceptarea schimbării valorii proprietății și anularea acesteia pe baza unei condiții.
    import kotlin.properties.Delegates
    
    var age: Int by Delegates.vetoable(10) {
        prop, old, new ->
        new >= 0 // Doar valorile nenegative sunt permise
    }