Stored versus computed properties, observers
Definieer stored en computed properties, maak read-only en get/set computed properties en reageer op wijzigingen met willSet/didSet-observers.
Stored versus computed properties, observers is een gratis Swift Academy-les op CoddyKit. Dit is les 2 van 3. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Swift Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Swift Academy bevat in totaal 3 lessen.
Overzicht
In deze les worden opgeslagen en berekende eigenschappen tegenover elkaar gezet en zie je hoe waarnemers met willSet/didSet op wijzigingen reageren.
Opgeslagen versus berekende
Opgeslagen eigenschappen bewaren gegevens. Berekende eigenschappen berekenen een waarde wanneer je ze benadert.
struct Rectangle {
// stored properties (hold data)
var width: Double
var height: Double
// computed property (derived on access)
var area: Double {
return width * height // read-only computed
}
}
let r = Rectangle(width: 3, height: 4)
print("area =", r.area) // 12Berekende get/set
Voeg get/set toe om een berekende eigenschap te maken die lezen en schrijven ondersteunt en invarianten synchroon houdt.
struct Circle {
var radius: Double // stored
var diameter: Double { // computed read-write
get { radius * 2 }
set { radius = newValue / 2 }
}
}
var c = Circle(radius: 5)
print(c.diameter) // 10
c.diameter = 14
print(c.radius) // 7Waarnemers in actie
Waarnemers worden uitgevoerd rondom wijzigingen van een opgeslagen eigenschap. Gebruik newValue/oldValue voor context.
struct Counter {
var value: Int = 0 {
willSet { print("will set to", newValue) }
didSet { print("did set from", oldValue) }
}
}
var cnt = Counter()
cnt.value = 5
cnt.value = 9Waarnemers versus berekende eigenschappen
Notities:
- Waarnemers gelden voor opgeslagen eigenschappen, ook voor eigenschappen die je in uitbreidingen instelt.
- Berekende eigenschappen ondersteunen geen waarnemers — plaats de logica in plaats daarvan in set.
- Waarnemers worden tijdens de initialisatie niet aangeroepen voordat de opslag gereed is.
Praktisch patroon
Combineer waarnemers om invoer te normaliseren met een berekende eigenschap om weergavegegevens af te leiden.
struct Score {
var raw: Int = 0 {
didSet {
if raw < 0 { raw = 0 }
if raw > 100 { raw = 100 }
}
}
var label: String {
// computed: derive a label from current raw
if raw >= 90 { return "A" }
if raw >= 80 { return "B" }
if raw >= 70 { return "C" }
return "D"
}
}
var s = Score()
s.raw = 120
print(s.raw, s.label) // 100 A
s.raw = -5
print(s.raw, s.label) // 0 DRegel voor waarnemers
Snelle controle: Wat wordt uitgevoerd vóór en na een wijziging van een opgeslagen eigenschap?
Samenvatting
Samenvatting: Gebruik opgeslagen eigenschappen voor gegevens, berekende eigenschappen voor afgeleide waarden (get/set) en willSet/didSet om te reageren op wijzigingen van opgeslagen eigenschappen.
Leer Swift met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 122
- Lessen
- 409
Veelgestelde vragen
Is de les “Stored versus computed properties, observers” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Swift Academy, waaronder “Stored versus computed properties, observers”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Swift Academy bevat in totaal 3 lessen.
Wat leer ik in “Stored versus computed properties, observers”?
Definieer stored en computed properties, maak read-only en get/set computed properties en reageer op wijzigingen met willSet/didSet-observers. Je oefent met Swift Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Swift Academy te beginnen?
Ervaring vooraf is niet nodig. Swift Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 3.
Hoe lang duurt de les “Stored versus computed properties, observers”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Swift Academy?
Ja. Elke les over Swift Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Structs versus classes, properties en initializers
- Stored versus computed properties, observers
- Initializers en deinit (classes)