Swift Academy · Lektion

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).

Lektion 3 av 48 steg

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)  // 12

Lä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)     // 7

Validering 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)  // 0

private(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 type

Anteckningar 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.

Gratis att börja

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

  1. Properties och subscripts
  2. lazy och property observers
  3. Beräknade properties med get/set
  4. Subscripts för anpassad indexering
← Tillbaka till Swift Academy