Sobes.tech
Junior — Middle

Vysvětlete princip fungování delegovaných vlastností v programovacím jazyce Kotlin.

sobes.tech AI

Odpověď od AI

V Kotlinu umožňují delegované vlastnosti přesměrovat operace čtení a zápisu vlastnosti na jiný objekt — delegáta. To usnadňuje opakované použití logiky přístupu k datům.

Syntaxe:

var názevVlastnosti: Typ přes delegáta

Například standardní delegát lazy inicializuje hodnotu při prvním použití:

val lazyHodnota: String přes lazy {
    println("Výpočet hodnoty")
    "Ahoj, Kotlin!"
}

fun main() {
    println(lazyHodnota) // Hodnota bude vypočtena a vypsána
    println(lazyHodnota) // Hodnota bude načtena z cache
}

Můžete vytvářet vlastní delegáty implementací rozhraní ReadOnlyProperty nebo ReadWriteProperty. Delegáty jsou užitečné pro implementaci vlastností s odloženou inicializací, sledováním změn, ukládáním do map atd.