Junior
Co znamená, pokud je pro proměnnou nastaven setter?
sobes.tech AI
Odpověď od AI
Setter (nastavení) je metoda, která umožňuje kontrolovat zápis nové hodnoty do proměnné. Při definování setteru je standardní mechanismus přiřazení hodnoty nahrazen kódem uvnitř setteru. To umožňuje:
- Validovat vstupní data: Zkontrolovat, zda nová hodnota splňuje stanovené podmínky, před jejím přiřazením proměnné.
var age: Int = 0 { didSet { // DidSet (po změně) je volán po přiřazení if age < 0 { age = 0 // Nedovolíme přiřadit zápornou hodnotu } } } - Provádět další akce: Spustit jiný kód při změně hodnoty proměnné, například aktualizovat uživatelské rozhraní nebo upozornit jiné části aplikace.
var score: Int = 0 { didSet { // DidSet (po změně) print("Skóre aktualizováno na \(score)") // Logování změny updateUI() // Aktualizace UI } } func updateUI() { // Kód pro aktualizaci rozhraní } - Vypočítávat hodnoty jiných vlastností: Změna jedné vlastnosti může ovlivnit hodnotu jiné.
var radius: Double = 0.0 { didSet { // DidSet area = Double.pi * radius * radius // Přepočítat plochu při změně poloměru } } var area: Double = 0.0 // Vlastnost závislá na radius
Settery ve Swiftu lze používat pro uložené (stored) i vypočítané (computed) vlastnosti. U uložených vlastností se často používají pozorovatelé vlastností (willSet a didSet), které jsou volány před a po přiřazení nové hodnoty. U vypočítaných vlastností určuje setter (set), jak má být hodnota přiřazena.
var myProperty: String {
// Getter
get {
return "Hodnota je: \(internalValue)"
}
// Setter
set(newValue) {
internalValue = newValue + " zpracováno" // Modifikace přiřazené hodnoty
}
}
private var internalValue: String = "" // Vnitřní uložená vlastnost