Kotlin Academy · Lektion

Enum-værdier og ordinaler

Iterér og indeksér

Lektion 4 af 413 trin

Enum-værdier og ordinaler er en gratis Kotlin Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Kotlin Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Kotlin Academy-kurset indeholder 4 lektioner i alt.

Visning af alle konstanter

Den genererede funktion values() returnerer et array med alle konstanter i deklarationsrækkefølge.

enum class Suit { HEARTS, CLUBS }

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

entries i stedet for values()

Moderne Kotlin foretrækker entries, som returnerer en uforanderlig liste og undgår at oprette et nyt array ved hvert kald.

enum class Suit { HEARTS, CLUBS }

fun main() {
    for (s in Suit.entries) println(s)
}

Egenskaben ordinal

Hver konstant har en ordinal: dens nulbaserede placering i deklarationsrækkefølgen.

enum class Size { S, M, L }

fun main() {
    println(Size.S.ordinal)
    println(Size.L.ordinal)
}

Optælling af konstanter

Brug entries.size til at tælle, hvor mange konstanter der findes.

enum class Day { MON, TUE, WED }

fun main() {
    println(Day.entries.size)
}

Iteration med indeks

Kombiner ordinaler eller indekser for at nummerere hver konstant.

enum class Color { RED, GREEN, BLUE }

fun main() {
    for (c in Color.entries) {
        println("${c.ordinal}: $c")
    }
}

Opsummering af valueOf og name

Sæt valueOf() (streng til konstant) sammen med name (konstant til streng) for at konvertere frem og tilbage.

enum class Status { ON, OFF }

fun main() {
    val s = Status.valueOf("ON")
    println(s.name)
}

Kortlægning af konstanter

Da entries er en liste, kan du bruge samlingsfunktioner som map.

enum class Coin(val cents: Int) { PENNY(1), DIME(10) }

fun main() {
    val names = Coin.entries.map { it.name }
    println(names)
}

Søgning ud fra en egenskab

Søg blandt konstanter med first eller find ud fra en egenskab.

enum class Coin(val cents: Int) { PENNY(1), DIME(10) }

fun main() {
    val c = Coin.entries.first { it.cents == 10 }
    println(c)
}

Ordinaler er skrøbelige

Undgå at gemme ordinal-værdier permanent. Hvis du ændrer rækkefølgen af konstanterne, ændres ordinalerne, og gemte data går i stykker. Gem i stedet name.

enum class Level { LOW, HIGH }

fun main() {
    println(Level.HIGH.name)
}

Næste konstant ud fra ordinalen

Du kan navigere mellem konstanter ved hjælp af ordinaler og listen entries.

enum class Gear { FIRST, SECOND, THIRD }

fun next(g: Gear): Gear {
    val all = Gear.entries
    return all[(g.ordinal + 1) % all.size]
}

fun main() {
    println(next(Gear.FIRST))
}

Samling af det hele

Opsummér en enumtype ved at iterere over konstanterne og læse både name og ordinal.

enum class Planet { MERCURY, VENUS, EARTH }

fun main() {
    Planet.entries.forEach {
        println("${it.ordinal} -> ${it.name}")
    }
}

Hurtigt tjek

Test din forståelse af enumværdier og ordinaler.

Opsummering

Du har lært at opregne og indeksere konstanter:

  • entries (den foretrukne løsning) og values() viser alle konstanter.
  • ordinal er den nulbaserede placering i deklarationen.
  • entries er en liste, så samlingsfunktioner fungerer.
  • Foretræk at gemme name frem for ordinal, så data holder over tid.
enum class Size { S, M, L }

fun main() {
    println(Size.entries.size)
    println(Size.M.ordinal)
}
Gratis at komme i gang

Lær Kotlin med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
51
Lektioner
203

Ofte stillede spørgsmål

Er lektionen “Enum-værdier og ordinaler” gratis?

Ja — alle 3 lektioner i læringssporet Kotlin Academy, inklusive “Enum-værdier og ordinaler”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Kotlin Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Enum-værdier og ordinaler”?

Iterér og indeksér Du øver dig i Kotlin Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Kotlin Academy?

Der kræves ingen tidligere erfaring. Kotlin Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Enum-værdier og ordinaler”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Kotlin Academy-lektion?

Ja. Alle Kotlin Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Definition af enums
  2. Enum-egenskaber og -metoder
  3. Enums med when
  4. Enum-værdier og ordinaler
← Tilbage til Kotlin Academy