「Kotlin」列挙型 (enum) の値をインデックスで取得する

環境

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Ubuntu 22.04.1 LTS
openjdk 11.0.16 2022-07-19
Kotlin version 1.7.20-release-201
Ubuntu 22.04.1 LTS openjdk 11.0.16 2022-07-19 Kotlin version 1.7.20-release-201
Ubuntu 22.04.1 LTS
openjdk 11.0.16 2022-07-19
Kotlin version 1.7.20-release-201

構文
1.列挙型クラスの定義
enum class クラス名 {
2.関数の定義
fun 関数名(変数名: データの型):列挙型クラス名
3.列挙型の値を取得します
列挙型クラス名.変数名(インデックスの値)
インデックス番号 (0, 1, 2) から 列挙型クラスのインスタンスを取得します。

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
enum class City {
TOKYO, OOSAKA, YOKOHAMA;
companion object {
fun fromCity(ordinal: Int) : City {
return values().first { it.ordinal == ordinal }
}
}
}
fun main() {
val f1 = City.fromCity(0)
println("インデックス0を指定")
println(f1)
val f2 = City.fromCity(1)
println("インデックス1を指定")
println(f2)
val f3 = City.fromCity(2)
println("インデックス2を指定")
println(f3)
}
enum class City { TOKYO, OOSAKA, YOKOHAMA; companion object { fun fromCity(ordinal: Int) : City { return values().first { it.ordinal == ordinal } } } } fun main() { val f1 = City.fromCity(0) println("インデックス0を指定") println(f1) val f2 = City.fromCity(1) println("インデックス1を指定") println(f2) val f3 = City.fromCity(2) println("インデックス2を指定") println(f3) }
enum class City {
    TOKYO, OOSAKA, YOKOHAMA;

    companion object {
        fun fromCity(ordinal: Int) : City {
            return values().first { it.ordinal == ordinal }
        }
    }
}

fun main() {

val f1 = City.fromCity(0)
println("インデックス0を指定")
println(f1)
val f2 = City.fromCity(1)
println("インデックス1を指定")
println(f2)
val f3 = City.fromCity(2)
println("インデックス2を指定")
println(f3)

}

実行結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# kotlinc test01.kt -include-runtime -d test01.jar && java -jar test01.jar
インデックス0を指定
TOKYO
インデックス1を指定
OOSAKA
インデックス2を指定
YOKOHAMA
# kotlinc test01.kt -include-runtime -d test01.jar && java -jar test01.jar インデックス0を指定 TOKYO インデックス1を指定 OOSAKA インデックス2を指定 YOKOHAMA
# kotlinc test01.kt -include-runtime -d test01.jar && java -jar test01.jar
インデックス0を指定
TOKYO
インデックス1を指定
OOSAKA
インデックス2を指定
YOKOHAMA

 

Kotlin

Posted by arkgame