Kotlin'da 'backing fields' qanday ishlatiladi?
sobes.tech AI
AIdan javob
Qo'llab-quvvatlovchi maydonlar ('backing fields') standart getter/setterlardan foydalanilganda kompilator tomonidan avtomatik ravishda yaratiladi va aniq e'lon qilish talab qilinmaydi. Ular xususiyatning qiymatini saqlash uchun ishlatiladi.
'Backing fields'ni aniq ishlatish kamdan-kam hollarda, masalan, getter yoki setterni moslashtirish va shu bilan birga xususiyatning o'ziga murojaat qilish, ya'ni getter chaqirmaslik, rekursiyaga olib kelishi mumkin bo'lgan hollarda talab qilinadi.
Getter yoki setter ichida 'backing field'ga aniq kirish uchun field identifikatori ishlatiladi.
class MyClass {
var counter = 0 // Kompilator bu xususiyat uchun backing field yaratadi
set(value) {
// Shartni tekshirishdan oldin
if (value >= 0) {
// Aniq kirish backing field
field = value
}
}
}
Agar xususiyat uni ishlatadigan xususiyat bo'lmasa (masalan, abstrakt xususiyatlar yoki interfeys xususiyatlari uchun) yoki getter va setter to'liq moslashtirilgan bo'lsa va kompilator tomonidan yaratilgan 'backing field' ishlatilmasa, 'backing field' yaratilmaydi.
Misol, 'backing field' yaratilmaydigan holat:
interface MyInterface {
val abstractProperty: String // Backing field yo'q
}
class AnotherClass {
val computedProperty: Int
get() = (1 + 2) // Getter backing field ishlatmaydi, backing field yo'q
}