Kotlin'de 'backing fields' nasıl kullanılır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Destek alanları ('backing fields') derleyici tarafından standart getter/setter kullanımıyla otomatik olarak oluşturulur ve açıkça bildirilmesine gerek yoktur. Bu alanlar, özelliğin değerini saklamak için kullanılır.
'Backing fields'ı açıkça kullanmak nadiren gereklidir, örneğin, bir getter veya setter'ı özelleştirirken ve aynı zamanda özelliğin kendisine referans verirken, çağrı yapmak yerine, bu durum rekursiyona yol açabilir.
Bir getter veya setter içinde 'backing field'a açık erişim için field tanımlayıcısı kullanılır.
class MyClass {
var counter = 0 // Derleyici bu özellik için bir backing field oluşturur
set(value) {
// Atamadan önce koşulu kontrol et
if (value >= 0) {
// Açık erişim backing field
field = value
}
}
}
'Backing field', eğer ona erişen bir özellik yoksa (örneğin, soyut özellikler veya arayüz özellikleri için) veya getter ve setter tamamen özelleştirilmiş ve derleyici tarafından oluşturulan 'backing field' kullanılmıyorsa, oluşturulmaz.
'Backing field' oluşturulmadığı örnekler:
interface MyInterface {
val abstractProperty: String // Backing field yok
}
class AnotherClass {
val computedProperty: Int
get() = (1 + 2) // Getter backing field kullanmıyor, backing field yok
}