Merhabalar bu yazımda Swift 5.5 ile fonksiyon parametresi içerisindede kullanılabilir hale gelecek olan @propertyWrapper örneği paylaşacağım.
Swift 5.1 ile aramıza katılan @propertyWrapper ile tanımladığımız değişkenlere ek özellikler kazandırabiliyoruz.
@propertyWrapper struct ClearStr { private(set) var value: String = "" var wrappedValue: String { get { value } set { value = newValue.replacingOccurrences(of: ".", with: "") } } init(wrappedValue: String) { self.wrappedValue = wrappedValue } }
struct CustomView:View { @ClearStr var name = "..Ken.an.." var body: some View { Text(name) .padding() .background(Color.orange) .cornerRadius(5) } }
Şimdi ise fonksiyon içerisindeki değişken tanımlarken kullanabileceğiz.
@propertyWrapper struct Clamped<T: Comparable> { let wrappedValue: T init(wrappedValue: T, range: ClosedRange<T>) { self.wrappedValue = min(max(wrappedValue, range.lowerBound), range.upperBound) } }
func setScore(@Clamped(range: 0...100) to score: Int) { print("Score: \(score)") }
İlk Yorumu Siz Yapın