Junior — Middle
Swift dilinde kendi özellik sarmalayıcınızı uygulayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Evet, Swift'te kendi özellik sarmalayıcılarınızı (property wrappers) oluşturabilirsiniz. Bu, özelliğin erişim ve depolama mantığını kapsülleyen özel bir türdür.
0 ile 100 arasında sınırlandıran basit bir sarmalayıcı örneği:
@propertyWrapper
struct Clamped {
private var value: Int
private let range: ClosedRange<Int>
var wrappedValue: Int {
get { value }
set { value = min(max(newValue, range.lowerBound), range.upperBound) }
}
init(wrappedValue initialValue: Int, _ range: ClosedRange<Int>) {
self.range = range
self.value = min(max(initialValue, range.lowerBound), range.upperBound)
}
}
struct Player {
@Clamped(0...100) var health: Int = 100
}
var player = Player()
player.health = 150
print(player.health) // 100 olarak gösterir, çünkü değer sınırlandırılmıştır
Bu şekilde, sarmalayıcılar özelliklerle çalışma mantığını yeniden kullanmaya ve merkezileştirmeye olanak tanır.