Sobes.tech
Junior — Middle

Vai ir iespēja deklarēt īpašības ārpus klases definīcijas Kotlin valodā?

sobes.tech AI

Atbilde no AI

Kotlin parasti īpašības tiek deklarētas klases definīcijā. Tomēr, ja nepieciešams pievienot īpašību ārpus klases, to var izdarīt ar paplašinājumiem (extension properties).

Paplašinājumi ļauj pievienot jaunas īpašības vai funkcijas esošajām klasēm, nemainot to avota kodu.

Piemērs paplašinājuma īpašībai ārpus klases:

class User(val name: String)

// Paplašinājuma īpašība ārpus klases
val User.firstChar: Char
    get() = this.name.first()

fun main() {
    val user = User("Anna")
    println(user.firstChar) // Izvadīs 'A'
}

Svarīgi: paplašinājuma īpašības nevar saturēt stāvokli (backing field), tāpēc tās ir jāizsaka ar aprēķinu (tikai ar gētteri vai ar gētteri un setteri, bet bez lauka).

Tādējādi īpašības var deklarēt ārpus klases definīcijas, izmantojot paplašinājumus, bet ar ierobežojumiem.