Swift Academy · Oppitunti

Lasketut ominaisuudet rakenteissa

Arvojen johtaminen vain get- ja get/set-laskettujen ominaisuuksien avulla.

Oppitunti 3/412 vaihetta

Lasketut ominaisuudet rakenteissa 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.

Tervetuloa

Lasketut ominaisuudet eivät tallenna arvoa, vaan laskevat ja palauttavat sen tarvittaessa. Kutsujalle ne näyttävät ominaisuuksilta, mutta niiden taustalla suoritetaan koodia.

Vain luku -tyyppinen laskettu ominaisuus

```swift struct Circle { var radius: Double var area: Double { .pi * radius * radius } var circumference: Double { 2 * .pi * radius } } var c = Circle(radius: 5) print(c.area) // 78.53... ```

get ja set

```swift struct Temperature { var celsius: Double var fahrenheit: Double { get { celsius * 9/5 + 32 } set { celsius = (newValue - 32) * 5/9 } } } var t = Temperature(celsius: 0) print(t.fahrenheit) // 32 t.fahrenheit = 212 print(t.celsius) // 100 ```

Lyhyt get-muoto — get-avainsanan pois jättäminen

Vain luku -tyyppisissä ominaisuuksissa `get { }` -kääre on valinnainen: ```swift var area: Double { .pi * radius * radius } // same as { get { ... } } ```

newValue setissä

`set`-lohkon sisällä vastaanotettavan arvon nimi on oletusarvoisesti `newValue`: ```swift set { celsius = (newValue - 32) * 5/9 } ``` Voit myös antaa sille nimen eksplisiittisesti: ```swift set(degF) { celsius = (degF - 32) * 5/9 } ```

Lasketut ominaisuudet eivät ole tallennettuja

Lasketuilla ominaisuuksilla ei ole taustalla olevaa tallennustilaa — jokaisella käyttökerralla koodi suoritetaan uudelleen: ```swift struct Stats { var scores: [Int] var average: Double { guard !scores.isEmpty else { return 0 } return Double(scores.reduce(0,+)) / Double(scores.count) } } ```

Staattiset lasketut ominaisuudet

```swift struct Config { static var appName: String { Bundle.main.infoDictionary?["CFBundleName"] as? String ?? "App" } } print(Config.appName) ```

Lasketut ominaisuudet protokollissa

```swift protocol Greetable { var greeting: String { get } } struct Person: Greetable { var name: String var greeting: String { "Hello, \(name)!" } } ``` Protokollat voivat vaatia laskettuja ominaisuuksia — määritä vain `{ get }` tai `{ get set }`.

Laskettujen ja tallennettujen ominaisuuksien suorituskyky

• Laskettu: lasketaan uudelleen jokaisella käyttökerralla — vältä raskasta laskentaa usein luettavissa ominaisuuksissa • Käytä `lazy var` -määrettä raskaille arvoille, jotka lasketaan vain kerran: ```swift lazy var thumbnail: UIImage = generateThumbnail() ```

Lausekemuoto vs lohko

Swift 5.9+:n yksilausekkeiset lasketut ominaisuudet palauttavat arvon implisiittisesti: ```swift var fullName: String { "\(first) \(last)" } // equivalent to: var fullName: String { return "\(first) \(last)" } ```

Pikatarkistus

Mikä on ominaisuuden `set`-lohkon sisällä vastaanotettavan arvon oletusnimi?

Kertaus

Tärkeimmät opit: • Lasketut ominaisuudet suorittavat koodia jokaisella käyttökerralla — niillä ei ole tallennustilaa • Vain luku -tyyppinen ominaisuus: jätä `get`/`set` pois tai käytä lyhyttä muotoa `{ return ... }` • Sekä luettava että kirjoitettava ominaisuus: määritä `get`- ja `set(newValue)`-lohkot • Sopivat erinomaisesti johdetuille arvoille, kuten `area`- ja `fullName`-arvoille sekä yksikkömuunnoksiin • Käytä `lazy`-määrettä raskaille, kerran laskettaville arvoille Seuraavaksi: mutating-metodit.
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 ”Lasketut ominaisuudet rakenteissa” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Swift Academy-oppimispolun 3 oppituntia, myös oppitunnin “Lasketut ominaisuudet rakenteissa”. 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 ”Lasketut ominaisuudet rakenteissa”?

Arvojen johtaminen vain get- ja get/set-laskettujen ominaisuuksien avulla. 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 ”Lasketut ominaisuudet rakenteissa”-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. Jäsenkohtaiset alustajat ja mukautetut init-alustajat
  2. Tallennetut ominaisuudet ja ominaisuustarkkailijat
  3. Lasketut ominaisuudet rakenteissa
  4. Muuttavat metodit ja copy-on-write-semanttiikka
← Takaisin: Swift Academy