Enum-værdier og ordinaler
Iterér og indeksér
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) ogvalues()viser alle konstanter.ordinaler den nulbaserede placering i deklarationen.entrieser en liste, så samlingsfunktioner fungerer.- Foretræk at gemme
namefrem forordinal, så data holder over tid.
enum class Size { S, M, L }
fun main() {
println(Size.entries.size)
println(Size.M.ordinal)
}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
- Definition af enums
- Enum-egenskaber og -metoder
- Enums med when
- Enum-værdier og ordinaler