НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1250 of 1310 menu

Ключевое слово enum

Ключевое слово enum используется для объявления перечислений - специальных классов, которые представляют фиксированный набор значений. Каждое значение перечисления является объектом и объявляется через запятую. Перечисления могут содержать свойства, методы и конструкторы.

Синтаксис

enum class EnumName { VALUE1, VALUE2, VALUE3 }
enum class EnumName(val property: Type) { VALUE1(value1), VALUE2(value2), VALUE3(value3) fun method(): ReturnType { // method body } }

Пример

Создадим простое перечисление дней недели:

enum class Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

Использование перечисления:

val today: Day = Day.MONDAY println(today)

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

MONDAY

Пример

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

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

Доступ к свойству перечисления:

val color: Color = Color.RED println(color.rgb)

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

16711680

Пример

Перечисление с методами:

enum class Operation { ADD { override fun apply(x: Double, y: Double): Double = x + y }, SUBTRACT { override fun apply(x: Double, y: Double): Double = x - y }, MULTIPLY { override fun apply(x: Double, y: Double): Double = x * y } abstract fun apply(x: Double, y: Double): Double }

Использование методов перечисления:

val result: Double = Operation.ADD.apply(5.0, 3.0) println(result)

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

Double 8.0

Пример

Получение всех значений перечисления:

enum class Direction { NORTH, SOUTH, EAST, WEST } val directions: Array<Direction> = Direction.values() for (dir in directions) { println(dir) }

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

NORTH SOUTH EAST WEST

Пример

Получение значения перечисления по имени:

enum class Status { ACTIVE, INACTIVE, PENDING } val status: Status = Status.valueOf("ACTIVE") println(status)

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

ACTIVE

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

  • ключевое слово class,
    которое используется для объявления классов
  • ключевое слово abstract,
    которое используется для объявления абстрактных классов и методов
  • ключевое слово sealed,
    которое используется для объявления sealed классов
  • ключевое слово data,
    которое используется для объявления data классов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить