Kotlin-də 'backing fields' necə istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Dəstək sahələri ('backing fields') standart getter/setter istifadə edilərkən kompilyator tərəfindən avtomatik yaradılır və açıq elan tələb etmir. Onlar xüsusiyyətin dəyərini saxlamaq üçün istifadə olunur.
'Backing fields'-in açıq istifadəsi nadir hallarda, məsələn, getter və ya setter-i fərdiləşdirmək və eyni zamanda xüsusiyyətin öz dəyərinə istinad etmək istədikdə, yəni getter çağırışını etmək əvəzinə, lazım olur ki, bu, rekursiyaya səbəb ola bilər.
Getter və ya setter daxilində 'backing field'-a açıq giriş üçün field identifikatoru istifadə olunur.
class MyClass {
var counter = 0 // Kompilyator bu xüsusiyyət üçün backing field yaradacaq
set(value) {
// Təyin etməzdən əvvəl şərti yoxlamaq
if (value >= 0) {
// Açıq giriş backing field
field = value
}
}
}
'Backing field' heç bir xüsusiyyət onu istifadə etmədiyi halda (məsələn, abstrakt xüsusiyyətlər və ya interfeys xüsusiyyətləri üçün) və ya getter və setter tam fərdiləşdirilib və kompilyator tərəfindən yaradılan 'backing field' istifadə edilmir, yaradılmır.
Misal, burada 'backing field' yaradılmır:
interface MyInterface {
val abstractProperty: String // Backing field yoxdur
}
class AnotherClass {
val computedProperty: Int
get() = (1 + 2) // Getter backing field istifadə etmir, backing field yoxdur
}