Junior — Middle
Kotlin тилинде класс аныктамасынан тышкары мүлктөрдү жарыялоо мүмкүнбү?
sobes.tech AI
AIден жооп
Kotlinде мүлктөр адатта класс аныктамасында жарыяланат. Бирок, эгер класс сыртында мүлк кошуу керек болсо, кеңейтүүлөрдү (extension properties) колдонсо болот.
Кеңейтүүлөр бар экен класс үчүн жаңы мүлктөр же функцияларды кошууга мүмкүндүк берет, алардын булагын өзгөртпөстөн.
Класс сыртында кеңейтүү мүлкүнүн мисалы:
class User(val name: String)
// Класс сыртында кеңейтүү мүлк
val User.firstChar: Char
get() = this.name.first()
fun main() {
val user = User("Anna")
println(user.firstChar) // 'A' чыгарат
}
Маанилүү: кеңейтүү мүлктөрү абал (backing field) болбойт, ошондуктан алар эсептелүүчү болушу керек (тек гана геттер менен же геттер жана сеттер менен, бирок талаа жок).
Ошентип, класс аныктамасынан тышкары мүлктөр кеңейтүүлөр аркылуу жарыяланат, бирок чектөөлөр менен.