Объявление 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,
которое создает статические члены класса