Sobes.tech
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.