Swift Academy · Lektion

lazy och property observers

Använd lazy-lagrade properties för uppskjutet arbete och observera ändringar i lagrade properties med willSet/didSet.

Lektion 2 av 48 steg

lazy och property observers är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 2 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

Den här lektionen fokuserar på två grundläggande delar: lazy lagrade egenskaper och egenskapsobservatörer (willSet/didSet).

lazy-egenskap

lazy skjuter upp skapandet tills egenskapen används första gången. Det är användbart för kostsamt arbete eller när self behövs.

struct DataLoader {
    lazy var data: [Int] = {
        print("Loading data...")
        return [1, 2, 3]
    }()
}
var loader = DataLoader()
print("before access")
print(loader.data)   // triggers initialization only now

lazy + self

Klasser kan använda lazy för att komma åt värden som är beroende av self efter initieringen.

class CacheOwner {
    let name: String
    lazy var hello: String = "Hi, " + name  // uses self safely after init
    init(name: String) { self.name = name }
}
let co = CacheOwner(name: "Ada")
print(co.hello)

Egenskapsobservatörer

Observatörer omsluter ändringar av en lagrad egenskap. Använd newValue och oldValue för sammanhang.

struct Counter {
    var value: Int = 0 {
        willSet { print("will set to", newValue) }
        didSet  { print("did set from", oldValue) }
    }
}
var c = Counter()
c.value = 5
c.value = 9

Begränsa med didSet

Använd didSet för att normalisera eller begränsa värden efter tilldelning.

struct Score {
    var raw: Int = 0 {
        didSet {
            if raw < 0 { raw = 0 }
            if raw > 100 { raw = 100 }
        }
    }
}
var s = Score()
s.raw = 120     // clamped to 100
print(s.raw)
s.raw = -5      // clamped to 0
print(s.raw)

Anteckningar

Anteckningar:

  • lazy fungerar endast med var-lagrade egenskaper.
  • Observatörer gäller lagrade egenskaper; beräknade egenskaper använder i stället logik i get/set.
  • Observatörer anropas inte under initieringen innan lagringen är klar.

Vad betyder lazy

Snabb kontroll: Vad gör lazy?

Sammanfattning

Sammanfattning: Använd lazy för att skjuta upp kostsam initiering och willSet/didSet för att reagera på ändringar av lagrade egenskaper med enkla regler.

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 ”lazy och property observers” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”lazy och property observers”, 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 ”lazy och property observers”?

Använd lazy-lagrade properties för uppskjutet arbete och observera ändringar i lagrade properties med willSet/didSet. 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 2 av 4.

Hur lång tid tar lektionen ”lazy och property observers”?

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