Kotlin Academy · leksjon

Definere enum-typer

Navngitte mengder med konstanter

Leksjon 1 av 413 trinn

Definere enum-typer er en gratis leksjon i Kotlin Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

Hva er en enum?

En enum class definerer et fast sett med navngitte konstanter. Bruk den når en verdi bare kan være ett av et lite, kjent antall alternativer.

  • Hver konstant er en instans av enum-typen.
  • Kompilatoren garanterer at ingen andre verdier er mulige.
enum class Direction {
    NORTH, SOUTH, EAST, WEST
}

fun main() {
    val d = Direction.NORTH
    println(d)
}

Hvorfor ikke bare bruke strenger?

Strenger tillater skrivefeil og ugyldige verdier. En enum gjør ugyldige tilstander umulige: kompilatoren avviser alt som ikke finnes i det deklarerte settet.

enum class Status { ACTIVE, INACTIVE }

fun main() {
    val s: Status = Status.ACTIVE
    println("Current: $s")
}

Deklarere konstanter

Konstantene listes mellom klammeparentesene og skilles med komma. Etter konvensjonen skrives de med UPPER_SNAKE_CASE.

enum class Size {
    SMALL, MEDIUM, LARGE, EXTRA_LARGE
}

fun main() {
    println(Size.EXTRA_LARGE)
}

Hver konstant er et objekt

Hver enum-konstant er en singleton-instans av enum-typen. Du refererer alltid til den via enum-navnet, for eksempel Color.RED.

enum class Color { RED, GREEN, BLUE }

fun main() {
    val c = Color.GREEN
    println(c == Color.GREEN)
}

Sammenligne enum-verdier

Enum-konstanter kan sammenlignes med ==. Siden hver konstant er en singleton, er likhet og referanseidentitet det samme.

enum class Light { RED, YELLOW, GREEN }

fun main() {
    val signal = Light.RED
    if (signal == Light.RED) println("Stop")
}

Lese egenskapen name

Hver konstant har en innebygd egenskap kalt name: den nøyaktige strengen fra deklarasjonen.

enum class Planet { MERCURY, VENUS, EARTH }

fun main() {
    val p = Planet.EARTH
    println(p.name)
}

valueOf fra en streng

Den genererte funksjonen valueOf() konverterer en streng som samsvarer, til enum-konstanten. En streng som ikke samsvarer, utløser et unntak.

enum class Day { MON, TUE, WED }

fun main() {
    val d = Day.valueOf("TUE")
    println(d)
}

Bruke enum-er som parametere

Enum-er egner seg godt som funksjonsparametere: den som kaller funksjonen, kan bare sende inn én av de gyldige konstantene.

enum class Level { LOW, HIGH }

fun setVolume(level: Level) {
    println("Volume set to $level")
}

fun main() {
    setVolume(Level.HIGH)
}

Enum-er forbedrer lesbarheten

Kode som leser Direction.NORTH, forklarer seg selv. Sammenlignet med magiske tall som 0 eller 1 er hensikten åpenbar.

enum class Gear { PARK, DRIVE, REVERSE }

fun main() {
    val current = Gear.DRIVE
    println("Gear is $current")
}

Et realistisk eksempel

Å modellere et lite sett med kortfarger passer perfekt for en enum.

enum class Suit { HEARTS, DIAMONDS, CLUBS, SPADES }

fun main() {
    for (suit in Suit.values()) {
        println(suit)
    }
}

Enum-er med én konstant

Også én konstant er gyldig, og brukes ofte til å modellere en verdi som garantert bare finnes én av (en enkel singleton).

enum class AppMode { PRODUCTION }

fun main() {
    println(AppMode.PRODUCTION)
}

Kort kontrollspørsmål

Test forståelsen din av hvordan enum-er defineres.

Oppsummering

Du har lært å definere enum-er:

  • enum class deklarerer et fast sett med navngitte konstanter.
  • Hver konstant er en singleton-instans som nås via enum-navnet.
  • name og valueOf() kobler konstanter og strenger sammen.
  • Enum-er hindrer ugyldige verdier ved kompilering.
enum class Direction { NORTH, SOUTH, EAST, WEST }

fun main() {
    println(Direction.valueOf("EAST").name)
}
Gratis å komme i gang

Lær deg Kotlin med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
51
Leksjoner
203

Ofte stilte spørsmål

Er leksjonen «Definere enum-typer» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Kotlin Academy, inkludert «Definere enum-typer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Kotlin Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Definere enum-typer»?

Navngitte mengder med konstanter Du øver på Kotlin Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Kotlin Academy?

Ingen tidligere erfaring er nødvendig. Kotlin Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Definere enum-typer»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Kotlin Academy-leksjonen?

Ja. Alle Kotlin Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Definere enum-typer
  2. Enum-egenskaper og -metoder
  3. Enum-typer med when
  4. Enum-verdier og ordinaler
← Tilbake til Kotlin Academy