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), ამიტომ ისინი უნდა იყოს გამოთვლადი (მხოლოდ გეტერით ან გეტერით და სეტერით, მაგრამ გარეშე ველი).
ამ გზით, თვისებები შეიძლება გამოაცხადოს კლასის განსაზღვრების გარეთ გაფართოებების მეშვეობით, მაგრამ შეზღუდვებით.