Junior — Middle
Kotlin dilində sinif tərifindən kənarda xüsusiyyətləri elan etmək imkanı varmı?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də xüsusiyyətlər adətən sinifin tərifində elan edilir. Ancaq, əgər sinifdən kənarda xüsusiyyət əlavə etmək lazımdırsa, genişlənmələrdən (extension properties) istifadə edə bilərsiniz.
Genişlənmələr mövcud siniflərə yeni xüsusiyyətlər və ya funksiyalar əlavə etməyə imkan verir, onların mənbə kodunu dəyişmədən.
Sinifdən kənarda genişlənmə xüsusiyyətinin nümunəsi:
class User(val name: String)
// Sinifdən kənarda genişlənmə xüsusiyyəti
val User.firstChar: Char
get() = this.name.first()
fun main() {
val user = User("Anna")
println(user.firstChar) // 'A' çap edir
}
Vacib: genişlənmə xüsusiyyətləri vəziyyət (backing field) saxlaya bilməz, ona görə də onlar hesablanmış olmalıdır (yalnız getter və ya getter və setter ilə, lakin sahə olmadan).
Bu şəkildə, sinifin tərifindən kənarda xüsusiyyətlər genişlənmələr vasitəsilə elan edilə bilər, lakin məhdudiyyətlərlə.