Свойство ordinal

Свойство ordinal доступно для всех элементов перечисления (enum) в Kotlin. Оно возвращает целое число типа Int, представляющее позицию элемента в объявлении enum (нумерация начинается с 0). Это свойство доступно только для чтения.

Синтаксис

kotlinval EnumClass.EnumValue.ordinal: Int

Пример

Создадим enum с днями недели и выведем ordinal для каждого элемента:

kotlinenum class Weekday {
  MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

val day = Weekday.WEDNESDAY
println(day.ordinal)

Результат выполнения кода:

kotlinInt 2

Пример

Использование ordinal в выражении when:

kotlinenum 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")
}

Результат выполнения кода:

kotlinString "East"

Пример

Получение всех ordinal значений enum:

kotlinenum class Color { RED, GREEN, BLUE }

val colors = Color.values()
colors.forEach { println("${it.name}: ${it.ordinal}") }

Результат выполнения кода:

kotlinRED: 0
GREEN: 1
BLUE: 2

Смотрите также

  • свойство name,
    которое возвращает имя элемента enum в виде строки
  • метод values,
    который возвращает массив всех элементов enum
  • метод valueOf,
    который возвращает элемент enum по его имени