Junior
Šta znači ako se za promenljivu postavi setter?
sobes.tech АИ
Одговор од АИ
Setter (seter) je metoda koja omogućava kontrolu zapisa nove vrednosti u promenljivu. Prilikom definisanja setera, standardni mehanizam dodeljivanja vrednosti po defaultu zamenjuje se kodom unutar setera. Ovo omogućava:
- Validaciju ulaznih podataka: Proveru da li nova vrednost odgovara zadatim uslovima pre nego što je dodelite promenljivoj.
var age: Int = 0 { didSet { // DidSet (nakon promene) se poziva nakon dodele if age < 0 { age = 0 // Ne dozvoljavamo dodelu negativne vrednosti } } } - Izvršavanje dodatnih radnji: Pokretanje drugog koda pri promeni vrednosti promenljive, na primer, ažuriranje korisničkog interfejsa ili obaveštavanje drugih delova aplikacije.
var score: Int = 0 { didSet { // DidSet (nakon promene) print("Ažuriran rezultat: \(score)") // Logovanje promene updateUI() // Ažuriranje UI } } func updateUI() { // Kod za ažuriranje interfejsa } - Izračunavanje vrednosti drugih svojstava: Promena jednog svojstva može uticati na vrednost drugog.
var radius: Double = 0.0 { didSet { // DidSet area = Double.pi * radius * radius // Re-izračunavanje površine pri promeni poluprečnika } } var area: Double = 0.0 // Svojstvo koje zavisi od radius
Setter-i u Swift-u mogu se koristiti za sačuvana (stored) i računata (computed) svojstva. Za sačuvana svojstva često se koriste posmatrači svojstava (willSet i didSet), koji se pozivaju pre i posle dodele nove vrednosti. Za računata svojstva, setter (set) definiše kako treba dodeliti vrednost.
var myProperty: String {
// Getter
get {
return "Vrednost je: \(internalValue)"
}
// Setter
set(newValue) {
internalValue = newValue + " obrađeno" // Modifikacija dodeljene vrednosti
}
}
private var internalValue: String = "" // Interno sačuvano svojstvo