Junior — Middle
Kotlin tilida sinf ta'rifidan tashqarida xususiyatlarni e'lon qilish imkoniyati bormi?
sobes.tech AI
AIdan javob
Kotlin'da xususiyatlar odatda sinf ta'riflari ichida e'lon qilinadi. Ammo, agar sinfdan tashqarida xususiyat qo'shish kerak bo'lsa, kengaytmalar (extension properties) dan foydalanish mumkin.
Kengaytmalar mavjud sinflarga yangi xususiyatlar yoki funksiyalar qo'shishga imkon beradi, ularning manba kodini o'zgartirmasdan.
Sinf tashqarisida kengaytma xususiyatining misoli:
class User(val name: String)
// Sinf tashqarisida kengaytma xususiyati
val User.firstChar: Char
get() = this.name.first()
fun main() {
val user = User("Anna")
println(user.firstChar) // 'A' ni chiqaradi
}
Muhim: kengaytma xususiyatlari holat (backing field) bo'lishi mumkin emas, shuning uchun ular hisoblangan bo'lishi kerak (faqat getter yoki getter va setter bilan, lekin maydon bilan emas).
Shu tarzda, sinf ta'rifidan tashqarida xususiyatlar kengaytmalar orqali e'lon qilinishi mumkin, ammo cheklovlar bilan.