Перечисления¶
Перечисление есть тип, который может принимать одно из именованных значений.
Объявление перечисления:
enum FixedColor
{
Black,
White,
Red,
Green,
Blue,
Yellow,
Magenta,
Cyan,
};
enum Component : i16 // Указан нижележащий тип для перечисления
{
One,
Two,
Three,
};
Использование:
var FixedColor mut c= FixedColor::Black;
c= FixedColor::Red;
if( c == FixedColor::Red ) {}
Значения типов перечислений можно присваивать, сравнивать на равенство, преобразовывать в целое число, использовать в качестве аргументов шаблонов. При преобразовании в целое число будет получено целочисленное значение равное порядковому номеру значения перечисления при объявлении, начиная с 0.
Перечисления можно сравнивать через ==
, !=
, <
, <=
, >
, >=
, <=>
.
Одно значение перечисления больше другого, если объявлено позже него.
Для перечисления можно указать целочисленный нижележащий тип. Значения типов перечисления будут занимать в памяти место, равное месту, занимаемому в памяти значениям нижележащего типа.
Если нижележащий тип не указан явно, им будет выбран u8
, u16
или u32
- в зависимости от количества членов перечисления.
Перечисления не могут быть пустыми, должно иметься хотя-бы одно значение. Перечисление должно иметь значений не больше, чем максимальное значение нижележащего типа.