Get/set-lasketut ominaisuudet
Luokaa laskettuja ominaisuuksia (vain luku ja luku/kirjoitus) get/set-rakenteilla, ylläpitäkää ehtoja setterissä ja käyttäkää käyttöoikeuksien hallintaa, kuten private(set).
Get/set-lasketut ominaisuudet on ilmainen Swift Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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
Lasketut ominaisuudet johtavat arvot käyttöhetkellä ja voivat synkronoida tilaa asetuksen yhteydessä. Käytä niitä invarianttien pitämiseen selkeinä.
Vain lukuun tarkoitettu laskettu ominaisuus
Vain lukuun tarkoitettu laskettu ominaisuus jättää set-osan pois. Pidä johdannat yksinkertaisina ja nopeina.
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) // 12Luku- ja kirjoituskelpoinen get/set
Lisää get/set, niin saat luku- ja kirjoituskelpoisen lasketun ominaisuuden, joka pitää toisiinsa liittyvät arvot synkronoituina.
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) // 7Asetuksen kelpoisuuden tarkistus
Asetuksissa voidaan tarkistaa syötteen kelpoisuus. Kun omaa nimeä ei ole määritetty, voit käyttää implisiittistä newValue-nimeä.
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)
Käytä private(set)-määrettä, kun haluat sallia arvon lukemisen mutta rajoittaa kirjoittamisen itse tyyppiin.
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 typeHuomautukset ja vinkit
Huomautukset:
- Lasketut ominaisuudet eivät tallenna dataa, vaan laskevat sen tarvittaessa.
- Ne eivät tue willSet/didSet-tarkkailijoita; sijoita logiikka sen sijaan set-osaan.
- Pidä getterit nopeina; raskas työ kuuluu metodeihin.
Lasketun ominaisuuden määritelmä
Pikatarkistus: Mikä määrittää lasketun ominaisuuden?
Kertaus
Kertaus: Rakenna vain lukuun tarkoitettuja ja luku- ja kirjoituskelpoisia laskettuja ominaisuuksia, tarkista syötteet set-osassa ja hallitse tietojen muokkausoikeutta private(set)-määritteellä.
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 ”Get/set-lasketut ominaisuudet” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Get/set-lasketut ominaisuudet”. 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 ”Get/set-lasketut ominaisuudet”?
Luokaa laskettuja ominaisuuksia (vain luku ja luku/kirjoitus) get/set-rakenteilla, ylläpitäkää ehtoja setterissä ja käyttäkää käyttöoikeuksien hallintaa, kuten private(set). 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 3/4.
Kuinka kauan ”Get/set-lasketut ominaisuudet”-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