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.