Enumeraatioiden määrittäminen
Nimetyt vakiojoukot
Enumeraatioiden määrittäminen on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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 Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on enumeraatio?
Enum-luokka määrittelee kiinteän joukon nimettyjä vakioita. Käytä sitä, kun arvo voi olla vain yksi pienestä, ennalta tunnetusta vaihtoehtojoukosta.
- Jokainen vakio on enum-tyypin ilmentymä.
- Kääntäjä takaa, etteivät muut arvot ole mahdollisia.
enum class Direction {
NORTH, SOUTH, EAST, WEST
}
fun main() {
val d = Direction.NORTH
println(d)
}Miksi ei vain käytettäisi merkkijonoja?
Merkkijonot sallivat kirjoitusvirheet ja virheelliset arvot. Enum tekee virheellisistä tiloista mahdottomia: kääntäjä hylkää kaikki ilmoitettuun joukkoon kuulumattomat arvot.
enum class Status { ACTIVE, INACTIVE }
fun main() {
val s: Status = Status.ACTIVE
println("Current: $s")
}Vakioiden määrittely
Vakiot luetellaan aaltosulkeiden välissä pilkuilla erotettuina. Yleissopimuksen mukaan ne kirjoitetaan muodossa UPPER_SNAKE_CASE.
enum class Size {
SMALL, MEDIUM, LARGE, EXTRA_LARGE
}
fun main() {
println(Size.EXTRA_LARGE)
}Jokainen vakio on olio
Jokainen enum-vakio on enum-tyypin singleton-ilmentymä. Siihen viitataan aina enum-nimen kautta, esimerkiksi Color.RED.
enum class Color { RED, GREEN, BLUE }
fun main() {
val c = Color.GREEN
println(c == Color.GREEN)
}Enum-arvojen vertaileminen
Enum-vakioita voi verrata operaattorilla ==. Koska jokainen vakio on singleton, yhtäsuuruus ja viiteidentiteetti vastaavat toisiaan.
enum class Light { RED, YELLOW, GREEN }
fun main() {
val signal = Light.RED
if (signal == Light.RED) println("Stop")
}name-ominaisuuden lukeminen
Jokainen vakio tarjoaa sisäänrakennetun name-ominaisuuden, joka sisältää täsmälleen sen määrittelyssä käytetyn merkkijonon.
enum class Planet { MERCURY, VENUS, EARTH }
fun main() {
val p = Planet.EARTH
println(p.name)
}valueOf merkkijonosta
Automaattisesti luotu valueOf()-funktio muuntaa täsmäävän merkkijonon enum-vakioksi. Jos merkkijono ei täsmää, funktio heittää poikkeuksen.
enum class Day { MON, TUE, WED }
fun main() {
val d = Day.valueOf("TUE")
println(d)
}Enumit parametreina
Enumit sopivat erinomaisesti funktion parametreiksi: kutsuja voi välittää vain yhden sallituista vakioista.
enum class Level { LOW, HIGH }
fun setVolume(level: Level) {
println("Volume set to $level")
}
fun main() {
setVolume(Level.HIGH)
}Enumit parantavat luettavuutta
Koodi, jossa lukee Direction.NORTH, dokumentoi itse itsensä. Taikalukuihin, kuten 0 tai 1, verrattuna tarkoitus on ilmeinen.
enum class Gear { PARK, DRIVE, REVERSE }
fun main() {
val current = Gear.DRIVE
println("Gear is $current")
}Realistinen esimerkki
Pienen korttimaiden joukon mallintaminen sopii täydellisesti enumille.
enum class Suit { HEARTS, DIAMONDS, CLUBS, SPADES }
fun main() {
for (suit in Suit.values()) {
println(suit)
}
}Yhden vakion enumit
Myös yksi vakio on sallittu. Sitä käytetään usein mallintamaan arvoa, jonka tiedetään olevan aina sama (niin sanottu köyhän miehen singleton).
enum class AppMode { PRODUCTION }
fun main() {
println(AppMode.PRODUCTION)
}Pikatarkistus
Testaa, miten hyvin ymmärrät enumien määrittelyn.
Kertaus
Opit määrittelemään enumit:
enum classilmoittaa kiinteän joukon nimettyjä vakioita.- Jokainen vakio on singleton-ilmentymä, johon pääsee käsiksi enum-nimen kautta.
namejavalueOf()yhdistävät vakiot ja merkkijonot.- Enumit estävät virheelliset arvot käännösaikana.
enum class Direction { NORTH, SOUTH, EAST, WEST }
fun main() {
println(Direction.valueOf("EAST").name)
}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
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Enumeraatioiden määrittäminen” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “Enumeraatioiden määrittäminen”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Enumeraatioiden määrittäminen”?
Nimetyt vakiojoukot Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Enumeraatioiden määrittäminen”-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 Academy-oppitunnilla?
Kyllä. Jokainen Kotlin 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
- Enumeraatioiden määrittäminen
- Enumeraatioiden ominaisuudet ja metodit
- Enumeraatiot ja when
- Enumeraatioarvot ja järjestysluvut