Sobes.tech
Junior — Middle

Existuje možnosť deklarovať vlastnosti mimo definície triedy v jazyku Kotlin?

sobes.tech AI

Odpoveď od AI

V Kotlinu sa vlastnosti zvyčajne deklarujú v rámci definície triedy. Ak však chcete pridať vlastnosť mimo triedy, môžete použiť rozšírenia (extension properties).

Rozšírenia umožňujú pridávať nové vlastnosti alebo funkcie k existujúcim triedam bez zmeny ich zdrojového kódu.

Príklad rozšírenia vlastnosti mimo triedy:

class User(val name: String)

// Rozšírenie vlastnosti mimo triedy
val User.firstChar: Char
    get() = this.name.first()

fun main() {
    val user = User("Anna")
    println(user.firstChar) // Vypíše 'A'
}

Dôležité: rozšírenia vlastností nemôžu mať stav (backing field), preto musia byť vypočítavané (len s getterom alebo s getterom a setterom, ale bez poľa).

Týmto spôsobom je možné deklarovať vlastnosti mimo definície triedy prostredníctvom rozšírení, ale s určitými obmedzeniami.