Sobes.tech
Junior — Middle

Оё имкон дорад, ки дар забони Swift фароии хусусиятии худро амалӣ кард?

sobes.tech AI

Ҷавоб аз AI

Бале, дар Swift метавонед фароии хусусиятҳои худро (property wrappers) эҷод кунед. Ин як навъи махсус аст, ки логикаи дастрасӣ ва нигоҳдории арзиши хусусиятро дар бар мегирад.

Масалан, як фароии оддӣ, ки арзиши хусусиятро дар доираи 0 то 100 маҳдуд мекунад:

@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-ро мебарорад, зеро арзиш маҳдуд шудааст

Инчунин, фароии хусусиятҳо имкон медиҳанд, ки логикаи кор бо хусусиятҳоро такрор истифода бурда, марказият диҳанд.