Junior
Ką reiškia, jei nustatomas setter kintamajam?
sobes.tech AI
Atsakymas iš AI
Setteris (setter) — tai metodas, leidžiantis kontroliuoti naujos reikšmės įrašymą į kintamąjį. Nustatant setterį, standartinis reikšmės priskyrimo mechanizmas pakeičiamas kodo, esančio setterio viduje. Tai leidžia:
- Patikrinti įvesties duomenis: Patikrinti, ar nauja reikšmė atitinka nustatytas sąlygas, prieš ją priskiriant kintamajam.
var age: Int = 0 { didSet { // Setteris (didSet) iškviečiamas po reikšmės nustatymo if age < 0 { age = 0 // Neleidžiame priskirti neigiamą reikšmę } } } - Vykdyti papildomas veiklas: Paleisti kitą kodą keičiant kintamojo reikšmę, pvz., atnaujinti naudotojo sąsają arba pranešti kitoms programos dalims.
var score: Int = 0 { didSet { // Setteris (didSet) print("Score updated to \(score)") // Loguoti pakeitimą updateUI() // Atnaujinti UI } } func updateUI() { // Kodas sąsajos atnaujinimui } - Apskaičiuoti kitų savybių reikšmes: Vienos savybės pakeitimas gali turėti įtakos kitai.
var radius: Double = 0.0 { didSet { // Setteris (didSet) area = Double.pi * radius * radius // Apskaičiuojame plotą keičiant spindulį } } var area: Double = 0.0 // Savybė, priklausanti nuo radius
Swift kalboje setteriai gali būti naudojami tiek saugomoms (stored properties), tiek skaičiuojamoms savybėms (computed properties). Saugomoms savybėms dažnai naudojami savybių stebėtojai (willSet ir didSet), kurie iškviečiami prieš ir po naujos reikšmės nustatymo. Skaičiuojamų savybių setteris (set) nustato, kaip turi būti priskirta reikšmė.
var myProperty: String {
// Ggetteris
get {
return "Value is: \(internalValue)"
}
// Setteris
set(newValue) {
internalValue = newValue + " processed" // Modifikuojame priskiriamą reikšmę
}
}
privati savybė: String = "" // Vidinė saugoma savybė