Sobes.tech
Junior

Mida tähendab, kui muutuja jaoks määratakse setter?

sobes.tech AI

Vastus AI-lt

Setter (setter) — see meetod, mis võimaldab kontrollida uue väärtuse kirjutamist muutujasse. Kui määrate setteri, asendatakse vaikimisi väärtuse määramise mehhanism setteri koodiga. See võimaldab:

  • Sisendandmete valideerimine: Kontrollida, kas uus väärtus vastab määratud tingimustele enne selle muutujale määramist.
    var age: Int = 0 {
        didSet { // Setter (didSet) kutsutakse pärast väärtuse määramist
            if age < 0 {
                age = 0 // Ei luba määrata negatiivset väärtust
            }
        }
    }
    
  • Täiendavate toimingute tegemine: Käivitada muu kood muutuja väärtuse muutmisel, näiteks kasutajaliidese uuendamine või teiste osade teavitamine.
    var score: Int = 0 {
        didSet { // Setter (didSet)
            print("Score updated to \(score)") // Muudatuse logimine
            updateUI() // UI uuendamine
        }
    }
    
    func updateUI() {
        // Kood kasutajaliidese uuendamiseks
    }
    
  • Teiste omaduste väärtuste arvutamine: Ühe omaduse muutmine võib mõjutada teist.
    var radius: Double = 0.0 {
        didSet { // Setter (didSet)
            area = Double.pi * radius * radius // Pindala arvutamine risti muutmisel
        }
    }
    
    var area: Double = 0.0 // Omadus, mis sõltub radiusest
    

Swiftis saab setterit kasutada nii salvestatud (stored properties) kui ka arvutatud omaduste (computed properties) jaoks. Salvestatud omaduste puhul kasutatakse sageli omaduste jälgijaid (willSet ja didSet), mis kutsutakse enne ja pärast uue väärtuse määramist. Arvutatud omaduste setter (set) määrab, kuidas väärtus peaks määratama.

var myProperty: String {
    // Getter
    get {
        return "Value is: \(internalValue)"
    }
    // Setter
    set(newValue) {
        internalValue = newValue + " processed" // Muudame määratavat väärtust
    }
}

private var internalValue: String = "" // Sisehoidla omadus