Функция enumValues

Функция enumValues возвращает массив всех элементов указанного enum-класса. Это встроенная функция Kotlin, которая позволяет получить все значения перечисления в виде массива. Функция является обобщенной и принимает тип enum-класса в качестве параметра типа.

Синтаксис

kotlininline fun <reified T : Enum<T>> enumValues(): Array<T>

Пример

Получим все значения простого enum-класса:

kotlinenum class Direction { NORTH, SOUTH, WEST, EAST }

val directions = enumValues<Direction>()
println(directions.contentToString())

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

kotlinArray<Direction> [NORTH, SOUTH, WEST, EAST]

Пример

Использование enumValues с enum, содержащим дополнительные свойства:

kotlinenum class Color(val rgb: Int) {
  RED(0xFF0000),
  GREEN(0x00FF00),
  BLUE(0x0000FF)
}

val colors = enumValues<Color>()
colors.forEach { println("${it.name}: ${it.rgb}") }

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

kotlinRED: 16711680
GREEN: 65280
BLUE: 255

Пример

Перебор значений enum с помощью enumValues:

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

val days = enumValues<WeekDay>()
for (day in days) {
  println(day)
}

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

kotlinMONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY

Пример

Получение enumValues в качестве массива и работа с ним:

kotlinenum class Priority { LOW, MEDIUM, HIGH }

val priorities = enumValues<Priority>()
println("First priority: ${priorities[0]}")
println("Last priority: ${priorities.last()}")

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

kotlinFirst priority: LOW
Last priority: HIGH

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

  • функцию enumValueOf,
    которая получает enum-значение по имени
  • метод values,
    который возвращает значения enum-класса (альтернатива enumValues)
  • метод ordinal,
    который возвращает порядковый номер enum-значения
  • метод name,
    который возвращает имя enum-значения в виде строки