Junior — Middle
Kann man in Swift einen eigenen Property-Wrapper implementieren?
sobes.tech KI
Antwort von AI
Ja, in Swift können Sie eigene Property Wrappers erstellen. Dies ist ein spezieller Typ, der die Logik für Zugriff und Speicherung des Eigenschaftswerts kapselt.
Beispiel für einen einfachen Wrapper, der den Wert der Eigenschaft im Bereich von 0 bis 100 einschränkt:
@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) // Gibt 100 aus, da der Wert begrenzt ist
Auf diese Weise ermöglichen Wrappers die Wiederverwendung und Zentralisierung der Logik für die Arbeit mit Eigenschaften.