Kotlin Multiplatform Academy · Oppitunti

Enumeraatiot ja sealed-luokat tilan mallintamiseen

Mallinna kiinteät vaihtoehdot ja tulosmuunnelmat turvallisesti

Oppitunti 2/413 vaihetta

Enumeraatiot ja sealed-luokat tilan mallintamiseen on ilmainen Kotlin Multiplatform Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Kotlin Multiplatform Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Mallinna rajatut vaihtoehdot

Joillakin arvoilla on ennalta tunnettu, rajallinen joukko vaihtoehtoja. Kotlin tarjoaa enum- ja sealed class -tyypit niiden turvalliseen mallintamiseen jaetussa koodissa.

Tutustu enum classiin

Enum class luettelee kaikki sallitut arvot nimeltä. Mikään luettelon ulkopuolinen arvo ei voi päästä mukaan.

enum class Status { ACTIVE, PAUSED, DONE }

Käytä enum-arvoa

Viittaa vaihtoehtoon sen nimellä. Koska joukko on suljettu, tilasi on aina yksi luetelluista vaihtoehdoista.

val current = Status.ACTIVE

Enum-tyypit voivat sisältää tietoja

Anna enum-konstruktorille ominaisuuksia, jotta kukin vaihtoehto voi sisältää ylimääräisiä kiinteitä tietoja, kuten selitteen tai numerokoodin.

enum class Plan(val price: Int) { FREE(0), PRO(9) }

Kun vaihtoehdot tarvitsevat eri tietoja

Enum-tyypeillä on yksi yhteinen rakenne. Kun vaihtoehdot tarvitsevat erilaisia kenttiä, käytä sen sijaan sealed class -tyyppiä.

Tutustu sealed classiin

Sealed class määrittelee suljetun alityyppien perheen. Kukin alityyppi voi sisältää omat yksilölliset tietonsa.

sealed class Result
data class Ok(val value: String) : Result()
data class Err(val message: String) : Result()

Miksi sealed on tehokas

Koska kääntäjä tuntee kaikki alityypit, sealed class voi mallintaa onnistumis-, lataus- ja virhetiloja tyyppiturvallisine tietoineen.

val state: Result = Ok("loaded")

Tee vertailu when-lauseella

Käsittele kukin vaihtoehto when-lauseella. Kääntäjä tarkistaa, että olet käsitellyt suljetun tyypin kaikki vaihtoehdot.

when (state) {
  is Ok -> println(state.value)
  is Err -> println(state.message)
}

Kattava when ilman else-haaraa

Kun käsittelet kaikki sealed-tyypin vaihtoehdot, voit jättää else-haaran pois. Jos lisäät myöhemmin uuden alityypin, kääntäjä muistuttaa siitä.

Jaettu rakenne, sama toiminta molemmissa sovelluksissa

commonMainissa määritellyt tila-tyypit ohjaavat Androidissa ja iOS:ssä täysin samaa logiikkaa ilman eriytymistä.

Valitse oikea työkalu

Käytä enum-tyyppiä yksinkertaisiin kiinteisiin vaihtoehtoihin ja sealed class -tyyppiä, kun kukin vaihtoehto sisältää erilaisia tietoja.

Pikatarkistus

Millä tyypillä nämä tilat pitäisi mallintaa?

Kertaus

Käytä jaettuja enum-tyyppejä kiinteisiin vaihtoehtoihin ja sealed class -tyyppejä vaihtoehtoihin, joilla on omat tietonsa. Käsittele niitä turvallisesti when-lauseella.

Aloita maksutta

Opi Kotlin 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
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Enumeraatiot ja sealed-luokat tilan mallintamiseen” ilmainen?

Kyllä – oppitunnin ”Enumeraatiot ja sealed-luokat tilan mallintamiseen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Kotlin Multiplatform Academy-kurssin, päivitä CoddyKit PROhon. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Enumeraatiot ja sealed-luokat tilan mallintamiseen”?

Mallinna kiinteät vaihtoehdot ja tulosmuunnelmat turvallisesti Harjoittelet Kotlin Multiplatform Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Multiplatform Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Multiplatform 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 ”Enumeraatiot ja sealed-luokat tilan mallintamiseen”-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ä Kotlin Multiplatform Academy-oppitunnilla?

Kyllä. Jokainen Kotlin Multiplatform 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. Data-luokat toimialueellesi
  2. Enumeraatiot ja sealed-luokat tilan mallintamiseen
  3. Null-turvallisuus jaetuissa malleissa
  4. Validointihelperit malleissa
← Takaisin: Kotlin Multiplatform Academy