Функция enumValues
Функция enumValues возвращает массив всех элементов указанного enum-класса.
Это встроенная функция Kotlin, которая позволяет получить все значения перечисления
в виде массива. Функция является обобщенной и принимает тип enum-класса
в качестве параметра типа.
Синтаксис
inline fun <reified T : Enum<T>> enumValues(): Array<T>
Пример
Получим все значения простого enum-класса:
enum class Direction { NORTH, SOUTH, WEST, EAST }
val directions = enumValues<Direction>()
println(directions.contentToString())
Результат выполнения кода:
Array<Direction> [NORTH, SOUTH, WEST, EAST]
Пример
Использование enumValues с enum, содержащим дополнительные свойства:
enum class Color(val rgb: Int) {
RED(0xFF0000),
GREEN(0x00FF00),
BLUE(0x0000FF)
}
val colors = enumValues<Color>()
colors.forEach { println("${it.name}: ${it.rgb}") }
Результат выполнения кода:
RED: 16711680
GREEN: 65280
BLUE: 255
Пример
Перебор значений enum с помощью enumValues:
enum class WeekDay { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
val days = enumValues<WeekDay>()
for (day in days) {
println(day)
}
Результат выполнения кода:
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
Пример
Получение enumValues в качестве массива и работа с ним:
enum class Priority { LOW, MEDIUM, HIGH }
val priorities = enumValues<Priority>()
println("First priority: ${priorities[0]}")
println("Last priority: ${priorities.last()}")
Результат выполнения кода:
First priority: LOW
Last priority: HIGH
Смотрите также
-
функцию
enumValueOf,
которая получает enum-значение по имени -
метод
values,
который возвращает значения enum-класса (альтернатива enumValues) -
метод
ordinal,
который возвращает порядковый номер enum-значения -
метод
name,
который возвращает имя enum-значения в виде строки