РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
118 of 723 menu

Объявление enum

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

Синтаксис

enum EnumName { value1, value2, value3, }

Также существует расширенный синтаксис с полями, конструктором и методами:

enum EnumName { value1(params), value2(params); final Type field; const EnumName(this.field); Type method() { return field; } }

Пример

Давайте объявим простое перечисление с тремя значениями и выведем каждое из них:

enum Color { red, green, blue, } void main() { print(Color.red); print(Color.green); print(Color.blue); }

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

"Color.red" "Color.green" "Color.blue"

Пример

Давайте получим индекс и имя каждого элемента перечисления с помощью свойств index и name:

enum Color { red, green, blue, } void main() { for (Color color in Color.values) { print('${color.index}: ${color.name}'); } }

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

"0: red" "1: green" "2: blue"

Пример

Давайте объявим расширенное перечисление с полем и методом, а затем выведем результаты:

enum Color { red('red'), green('green'), blue('blue'); final String title; const Color(this.title); String get upperTitle { return title.toUpperCase(); } } void main() { Color color = Color.red; print(color.title); print(color.upperTitle); }

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

"red" "RED"

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

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