Список entries и разбор имени в Kotlin
Свойство entries у любого enum class
возвращает список всех констант в порядке объявления.
По нему удобно строить меню, проверять допустимые значения
и обходить enum в цикле:
enum class Status { DRAFT, ACTIVE, CLOSED }
Запишем значение этого типа:
for (status in Status.entries) {
println(status.name)
}
У каждой константы есть свойство name - строка
с именем в коде. Обратное преобразование выполняет
функция enumValueOf: при неизвестном имени
она бросает исключение:
enum class Status { DRAFT, ACTIVE, CLOSED }
Запишем значение этого типа:
val parsed = enumValueOf<Status>("ACTIVE")
println(parsed)
Старый метод values() возвращает массив констант.
В новых проектах предпочитают entries: это
неизменяемый список без лишнего копирования в
List. Содержимое у values() и
entries совпадает:
enum class Axis { X, Y, Z }
Запишем значение этого типа:
println(Axis.entries.size)
println(Axis.values().size)
Объявите enum class Lang с константами
RU, EN и DE.
Выведите все значения name в порядке
entries в одной строке, между словами
один пробел.
Объявите enum class Tier с константами
FREE, PRO и TEAM.
Дана строка:
val raw = "PRO"
Получите константу Tier по имени из этой
строки и выведите ее.