Swift Academy · Oppitunti

lazy ja ominaisuuksien tarkkailijat

Käyttäkää lazy-tallennettuja ominaisuuksia lykättyyn työhön ja tarkkailkaa tallennettujen ominaisuuksien muutoksia willSet/didSet-rakenteilla.

Oppitunti 2/48 vaihetta

lazy ja ominaisuuksien tarkkailijat on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Swift Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Yleiskatsaus

Tässä oppitunnissa keskitytään kahteen perusasiaan: lazy-tallennettuihin ominaisuuksiin ja ominaisuustarkkailijoihin (willSet/didSet).

lazy-ominaisuus

lazy siirtää luomisen ensimmäiseen käyttöön. Se on hyödyllinen raskaissa toimenpiteissä tai silloin, kun self tarvitaan.

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 ja self

Luokat voivat käyttää lazy-määrettä päästäkseen käsiksi self-riippuvaisiin arvoihin alustuksen jälkeen.

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)

Ominaisuustarkkailijat

Tarkkailijat käsittelevät tallennetun ominaisuuden muutoksia ennen muutosta ja sen jälkeen. Käytä arvoja newValue ja oldValue saadaksesi muutoksesta lisätietoja.

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

Arvon rajoittaminen didSetillä

Käytä didSet-tarkkailijaa arvojen normalisoimiseen tai rajoittamiseen määrityksen jälkeen.

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)

Huomautukset

Huomautukset:

  • lazy toimii vain var-tallennettujen ominaisuuksien kanssa.
  • Tarkkailijat koskevat tallennettuja ominaisuuksia; lasketut ominaisuudet käyttävät sen sijaan get/set-logiikkaa.
  • Tarkkailijoita ei kutsuta alustuksen aikana, ennen kuin tallennustila on valmis.

lazyn merkitys

Pikatarkistus: Mitä lazy tekee?

Kertaus

Kertaus: Käytä lazy-määrettä raskaan alustuksen siirtämiseen ja willSet/didSet-tarkkailijoita tallennettujen ominaisuuksien muutoksiin reagoimiseen yksinkertaisilla säännöillä.

Aloita maksutta

Opi Swift tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
122
Oppitunnit
409

Usein kysytyt kysymykset

Onko oppitunti ”lazy ja ominaisuuksien tarkkailijat” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “lazy ja ominaisuuksien tarkkailijat”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Swift Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”lazy ja ominaisuuksien tarkkailijat”?

Käyttäkää lazy-tallennettuja ominaisuuksia lykättyyn työhön ja tarkkailkaa tallennettujen ominaisuuksien muutoksia willSet/didSet-rakenteilla. Harjoittelet Swift Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Swift Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Swift Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”lazy ja ominaisuuksien tarkkailijat”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Swift Academy-oppitunnilla?

Kyllä. Jokainen Swift Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Ominaisuudet ja subscripts
  2. lazy ja ominaisuuksien tarkkailijat
  3. Get/set-lasketut ominaisuudet
  4. Subscripts mukautettuun indeksointiin
← Takaisin: Swift Academy