Junior
Čo znamená, ak je pre premennú nastaven setter?
sobes.tech AI
Odpoveď od AI
Setter (nastavovač) je metóda, ktorá umožňuje kontrolovať zápis novej hodnoty do premennej. Pri definovaní setteru sa štandardný mechanizmus priraďovania hodnoty nahradí kódom vo vnútri setteru. To umožňuje:
- Validovať vstupné údaje: Skontrolovať, či nová hodnota spĺňa stanovené podmienky, pred jej priradením premennej.
var age: Int = 0 { didSet { // DidSet (po zmene) sa volá po priradení if age < 0 { age = 0 // Neumožniť priradiť zápornú hodnotu } } } - Vykonávať ďalšie akcie: Spustiť iný kód pri zmene hodnoty premennej, napríklad aktualizovať používateľské rozhranie alebo upozorniť iné časti aplikácie.
var score: Int = 0 { didSet { // DidSet (po zmene) print("Aktualizované skóre na \(score)") // Logovanie zmeny updateUI() // Aktualizovať UI } } func updateUI() { // Kód na aktualizáciu rozhrania } - Vypočítať hodnoty iných vlastností: Zmena jednej vlastnosti môže ovplyvniť hodnotu inej.
var radius: Double = 0.0 { didSet { // DidSet area = Double.pi * radius * radius // Prepočítať plochu pri zmene polomeru } } var area: Double = 0.0 // Vlastnosť závislá od radius
Setter-y v Swifte môžu byť použité pre uložené (stored) a vypočítané (computed) vlastnosti. Pre uložené vlastnosti sa často používajú pozorovatelia vlastností (willSet a didSet), ktoré sú volané pred a po priradení novej hodnoty. Pre vypočítané vlastnosti určuje setter (set), ako má byť hodnota priradená.
var myProperty: String {
// Getter
get {
return "Hodnota je: \(internalValue)"
}
// Setter
set(newValue) {
internalValue = newValue + " spracované" // Modifikácia priradenej hodnoty
}
}
private var internalValue: String = "" // Vnútorná uložená vlastnosť