Тип Enum
Тип Enum в Dart представляет собой специальный тип,
который используется для создания перечислений -
наборов именованных констант. Перечисления объявляются
с помощью ключевого слова enum и позволяют
задать фиксированный список значений, каждое из которых
имеет имя и индекс. Каждое значение перечисления является
экземпляром класса Enum и обладает свойствами
index (порядковый номер, начиная с нуля) и
name (имя константы). Перечисления удобно
использовать там, где нужно ограничить набор возможных
значений, например, для дней недели, направлений или
статусов.
Синтаксис
enum EnumName
{
value1,
value2,
value3
}
Пример
Давайте объявим перечисление с тремя значениями и выведем каждое из них:
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()
{
print(Color.red.index);
print(Color.red.name);
print(Color.green.index);
print(Color.green.name);
print(Color.blue.index);
print(Color.blue.name);
}
Результат выполнения кода:
0
"red"
1
"green"
2
"blue"
Пример
Давайте получим список всех значений перечисления
с помощью статического свойства values:
enum Color
{
red,
green,
blue
}
void main()
{
List<Color> res = Color.values;
print(res);
}
Результат выполнения кода:
[Color.red, Color.green, Color.blue]
Пример
Давайте получим значение перечисления по его имени
с помощью статического метода values.byName:
enum Color
{
red,
green,
blue
}
void main()
{
Color res = Color.values.byName('green');
print(res);
}
Результат выполнения кода:
"Color.green"
Пример
Давайте используем перечисление в switch
для обработки всех возможных значений:
enum Color
{
red,
green,
blue
}
void main()
{
Color color = Color.green;
switch (color)
{
case Color.red:
print('red');
break;
case Color.green:
print('green');
break;
case Color.blue:
print('blue');
break;
}
}
Результат выполнения кода:
"green"
Смотрите также
-
тип
Type,
который представляет тип объекта во время выполнения -
тип
Symbol,
который представляет идентификатор -
тип
Comparable,
который используется для сравнения объектов -
тип
bool,
который представляет логические значения