Enumの値と序数
反復とインデックス参照を学びます
「Enumの値と序数」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。
すべての定数の列挙
自動生成されるvalues()関数は、宣言順にすべての定数を含む配列を返します。
enum class Suit { HEARTS, CLUBS }
fun main() {
for (s in Suit.values()) println(s)
}values()の代わりにentries
現在のKotlinではentriesが推奨されています。entriesは不変リストを返し、呼び出しのたびに新しい配列を作成することを避けられます。
enum class Suit { HEARTS, CLUBS }
fun main() {
for (s in Suit.entries) println(s)
}ordinalプロパティ
すべての定数にはordinalがあり、宣言順におけるゼロ始まりの位置を表します。
enum class Size { S, M, L }
fun main() {
println(Size.S.ordinal)
println(Size.L.ordinal)
}定数の個数を数える
entries.sizeを使用すると、定数の個数を数えられます。
enum class Day { MON, TUE, WED }
fun main() {
println(Day.entries.size)
}インデックスを使った反復
ordinalまたはインデックスを組み合わせて、各定数に番号を付けられます。
enum class Color { RED, GREEN, BLUE }
fun main() {
for (c in Color.entries) {
println("${c.ordinal}: $c")
}
}valueOfとnameのまとめ
valueOf()(文字列から定数)とname(定数から文字列)を組み合わせると、往復変換を行えます。
enum class Status { ON, OFF }
fun main() {
val s = Status.valueOf("ON")
println(s.name)
}定数のマッピング
entriesはリストなので、mapなどのコレクション関数を使用できます。
enum class Coin(val cents: Int) { PENNY(1), DIME(10) }
fun main() {
val names = Coin.entries.map { it.name }
println(names)
}プロパティによる検索
プロパティを条件にして、firstまたはfindで定数を検索できます。
enum class Coin(val cents: Int) { PENNY(1), DIME(10) }
fun main() {
val c = Coin.entries.first { it.cents == 10 }
println(c)
}ordinalは壊れやすい
ordinalの値を長期間保存することは避けてください。定数の順序を変更するとordinalも変わり、保存済みのデータが壊れるためです。代わりにnameを保存してください。
enum class Level { LOW, HIGH }
fun main() {
println(Level.HIGH.name)
}ordinalによる次の定数
ordinalと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))
}総合演習
反復処理を行い、nameとordinalの両方を読み取ってenumを要約します。
enum class Planet { MERCURY, VENUS, EARTH }
fun main() {
Planet.entries.forEach {
println("${it.ordinal} -> ${it.name}")
}
}理解度チェック
enumの値とordinalについて理解できているか確認しましょう。
まとめ
定数を列挙してインデックスを付ける方法を学びました。
entries(推奨)とvalues()は、すべての定数を一覧表示します。ordinalは、宣言順におけるゼロ始まりの位置です。entriesはリストなので、コレクション関数を使用できます。- 永続性を保つため、
ordinalよりもnameを保存することを優先してください。
enum class Size { S, M, L }
fun main() {
println(Size.entries.size)
println(Size.M.ordinal)
}よくある質問
「Enumの値と序数」レッスンは無料ですか?
はい。「Enumの値と序数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。
「Enumの値と序数」で何を学びますか?
反復とインデックス参照を学びます ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Kotlin Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「Enumの値と序数」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このKotlin Academyレッスンでコードを書いて実行できますか?
はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Enumの定義
- Enumのプロパティとメソッド
- whenとEnum
- Enumの値と序数