Beräknade properties med get/set
Skapa beräknade properties (skrivskyddade och läs-/skrivbara) med get/set, upprätthåll invariants i setters och använd åtkomstkontroll som private(set).
Beräknade properties med get/set är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.
Översikt
Beräknade egenskaper härleder värden när de används och kan synkronisera tillstånd vid tilldelning. Använd dem för att hålla invariantsynkroniseringen på plats.
Skrivskyddad beräknad egenskap
En skrivskyddad beräknad egenskap utelämnar set. Håll härledningarna enkla och snabba.
struct Rectangle {
var width: Double
var height: Double
var area: Double { // read-only computed
width * height
}
}
let r = Rectangle(width: 3, height: 4)
print("area =", r.area) // 12Läsning och skrivning med get/set
Lägg till get/set för en läs- och skrivbar beräknad egenskap som håller relaterade värden synkroniserade.
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) // 7Validering i setter
Setter kan validera indata. Du kan använda det implicita namnet newValue när inget eget namn anges.
struct Percentage {
private var _raw: Int = 0 // backing store
var value: Int {
get { _raw }
set { // uses implicit newValue
_raw = min(100, max(0, newValue))
}
}
}
var p = Percentage()
p.value = 120
print(p.value) // 100
p.value = -5
print(p.value) // 0private(set)
Använd private(set) för att tillåta läsning av ett värde men begränsa skrivningar till själva typen.
struct ScoreBoard {
private(set) var highScore = 0 // public read, internal write
mutating func update(_ v: Int) {
if v > highScore { highScore = v }
}
}
var s = ScoreBoard()
s.update(30)
print(s.highScore)
// s.highScore = 50 // error outside the typeAnteckningar och tips
Anteckningar:
- Beräknade egenskaper lagrar inte data; de beräknar värden vid behov.
- De stöder inte willSet/didSet; lägg i stället logiken i set.
- Håll getters snabba; kostsamt arbete hör hemma i metoder.
Definition av beräknad egenskap
Snabb kontroll: Vad definierar en beräknad egenskap?
Sammanfattning
Sammanfattning: Skapa skrivskyddade och läs- och skrivbara beräknade egenskaper, validera i set och använd private(set) för att styra vem som får ändra data.
Lär dig Swift med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 122
- Lektioner
- 409
Vanliga frågor
Är lektionen ”Beräknade properties med get/set” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Beräknade properties med get/set”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Beräknade properties med get/set”?
Skapa beräknade properties (skrivskyddade och läs-/skrivbara) med get/set, upprätthåll invariants i setters och använd åtkomstkontroll som private(set). Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Swift Academy?
Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Beräknade properties med get/set”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Swift Academy-lektionen?
Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Properties och subscripts
- lazy och property observers
- Beräknade properties med get/set
- Subscripts för anpassad indexering