lazy ja ominaisuuksien tarkkailijat
Käyttäkää lazy-tallennettuja ominaisuuksia lykättyyn työhön ja tarkkailkaa tallennettujen ominaisuuksien muutoksia willSet/didSet-rakenteilla.
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 nowlazy 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 = 9Arvon 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ä.
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
- Ominaisuudet ja subscripts
- lazy ja ominaisuuksien tarkkailijat
- Get/set-lasketut ominaisuudet
- Subscripts mukautettuun indeksointiin