1. Stored Property (Depolanmış Özellik)
Stored property, bir sınıf (class
) veya yapı (struct
) içinde gerçek bir değer saklayan property’dir.
Her instance (örnek) için bir değeri vardır.
İlk tanımlandığında bir başlangıç değeri alabilir veya daha sonra atanabilir.
Örnek:
struct User {
var name: String // stored property
var age: Int // stored property
}
Burada name
ve age
doğrudan bellekte veri tutar.
Her User
nesnesinin kendi name
ve age
değeri olur.
2. Computed Property (Hesaplanan Özellik)
Computed property ise gerçek veri saklamaz.
Her erişildiğinde (veya bazen ayarlandığında) bir hesaplama yaparak değer döner.
Örnek:
struct Rectangle {
var width: Double // stored property
var height: Double // stored property
var area: Double { // computed property
return width * height
}
}
Burada area
değeri bellekte tutulmaz.
Her area
‘ya erişildiğinde, width * height
yeniden hesaplanır.
İstersen get
ve set
bloklarıyla daha gelişmiş bir computed property
yazabilirsin:
struct Rectangle {
var width: Double
var height: Double
var area: Double {
get {
return width * height
}
set {
// newValue varsayılan bir isimdir, set içine gelen değeri temsil eder
width = sqrt(newValue)
height = sqrt(newValue)
}
}
}
Burada hem okuyabiliyor hem de dışarıdan area
atanabiliyor.
Bir yanıt yazın