Enum-värden och ordinaler
Iterera och indexera
Enum-värden och ordinaler är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Lista alla konstanter
Den genererade funktionen values() returnerar en array med alla konstanter i deklarationsordning.
enum class Suit { HEARTS, CLUBS }
fun main() {
for (s in Suit.values()) println(s)
}entries i stället för values()
I modern Kotlin föredras entries, som returnerar en oföränderlig lista och undviker att skapa en ny array vid varje anrop.
enum class Suit { HEARTS, CLUBS }
fun main() {
for (s in Suit.entries) println(s)
}Egenskapen ordinal
Varje konstant har en ordinal: dess nollbaserade position i deklarationsordningen.
enum class Size { S, M, L }
fun main() {
println(Size.S.ordinal)
println(Size.L.ordinal)
}Räkna konstanter
Använd entries.size för att räkna hur många konstanter som finns.
enum class Day { MON, TUE, WED }
fun main() {
println(Day.entries.size)
}Iterera med index
Kombinera ordinaler eller index för att numrera varje konstant.
enum class Color { RED, GREEN, BLUE }
fun main() {
for (c in Color.entries) {
println("${c.ordinal}: $c")
}
}Sammanfattning av valueOf och name
Kombinera valueOf() (sträng till konstant) med name (konstant till sträng) för konvertering fram och tillbaka.
enum class Status { ON, OFF }
fun main() {
val s = Status.valueOf("ON")
println(s.name)
}Avbilda över konstanter
Eftersom entries är en lista kan Ni använda samlingsfunktioner som map.
enum class Coin(val cents: Int) { PENNY(1), DIME(10) }
fun main() {
val names = Coin.entries.map { it.name }
println(names)
}Hitta utifrån en egenskap
Sök bland konstanter med first eller find utifrån en egenskap.
enum class Coin(val cents: Int) { PENNY(1), DIME(10) }
fun main() {
val c = Coin.entries.first { it.cents == 10 }
println(c)
}Ordinaler är känsliga
Undvik att lagra värden från ordinal under lång tid. Om Ni ändrar konstantérnas ordning ändras ordinalerna, vilket förstör sparade data. Lagra i stället name.
enum class Level { LOW, HIGH }
fun main() {
println(Level.HIGH.name)
}Nästa konstant med ordinal
Ni kan navigera mellan konstanter med hjälp av ordinaler och listan 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))
}Sätta ihop delarna
Sammanfatta en enum genom att iterera och läsa både name och ordinal.
enum class Planet { MERCURY, VENUS, EARTH }
fun main() {
Planet.entries.forEach {
println("${it.ordinal} -> ${it.name}")
}
}Snabb kontroll
Testa hur väl Ni förstår enumvärden och ordinaler.
Sammanfattning
Ni har lärt Er att räkna upp och indexera konstanter:
entries(rekommenderas) ochvalues()listar alla konstanter.ordinalär den nollbaserade positionen i deklarationen.entriesär en lista, så samlingsfunktioner fungerar.- Föredra att lagra
nameframförordinalför långsiktig hållbarhet.
enum class Size { S, M, L }
fun main() {
println(Size.entries.size)
println(Size.M.ordinal)
}Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 51
- Lektioner
- 203
Vanliga frågor
Är lektionen ”Enum-värden och ordinaler” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”Enum-värden och ordinaler”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Enum-värden och ordinaler”?
Iterera och indexera Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?
Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Enum-värden och ordinaler”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?
Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Definiera enum-typer
- Egenskaper och metoder i enum-typer
- Enum-typer med when
- Enum-värden och ordinaler