Свойство ordinal
Свойство ordinal доступно для всех элементов перечисления (enum) в Kotlin.
Оно возвращает целое число типа Int, представляющее позицию элемента
в объявлении enum (нумерация начинается с 0).
Это свойство доступно только для чтения.
Синтаксис
val EnumClass.EnumValue.ordinal: Int
Пример
Создадим enum с днями недели и выведем ordinal для каждого элемента:
enum class Weekday {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
val day = Weekday.WEDNESDAY
println(day.ordinal)
Результат выполнения кода:
Int 2
Пример
Использование ordinal в выражении when:
enum class Direction { NORTH, EAST, SOUTH, WEST }
val dir = Direction.EAST
when (dir.ordinal) {
0 -> println("North")
1 -> println("East")
2 -> println("South")
3 -> println("West")
else -> println("Unknown direction")
}
Результат выполнения кода:
String "East"
Пример
Получение всех ordinal значений enum:
enum class Color { RED, GREEN, BLUE }
val colors = Color.values()
colors.forEach { println("${it.name}: ${it.ordinal}") }
Результат выполнения кода:
RED: 0
GREEN: 1
BLUE: 2