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.