Перечисление

Во время разработки какой-либо программы часто возникает необходимость использования некоторого набора сущностей, объединенных одним смыслом. Например, разрабатывая программу, которая может работать под управлением нескольких операционных систем, мы можем захотеть идентифицировать каждую из них. Можно использовать для такой идентификации строковые значения, но лучше для этих целей использовать специальный тип данных — перечисление. Перечисление — это специальный тип данных, множество значений которого представляет собой явно заданный набор идентификаторов. После объявления собственного перечисления разработчик может использовать его наряду с перечислениями, которые уже существуют в языке. Для обращения к элементу перечисления следует указать имя самого перечисления и, через точку, требуемый элемент перечисления.

Синтаксис объявления перечисления следующий:

перечисление имя-перечисления
    элемент [умолчание,]
    [элемент,]
    [элемент,]
    ...
    [метод]
    [метод]
;
имя-перечисления
имя-перечисления указывает имя создаваемого перечисления. Это имя в дальнейшем следует указывать в качестве имени типа при объявлении переменных, принимающих значения данного перечисления
элемент
Имена, указанные в синтаксисе как элемент, задают тот самый набор уникальных идентификаторов (в рамках этого перечисления), который требуется разработчику. Например, для задания перечисления ОперационныеСистемы можно использовать следующий пример:
перечисление ОперационныеСистемы
    Windows,
    macOS,
    Linux
;

В этом примере значения Windows, macOS и Linux — это и есть тот самый набор уникальных идентификаторов.

В составе перечисления должно быть минимум одно значение.

Умолчание
Перечисление может обладать единственным значением по умолчанию или вовсе не иметь значения по умолчанию. Значение по умолчанию будет использоваться в том случае, если переменная описывается с типом создаваемого перечисления и для этой переменной не указывается значение инициализации. Значением по умолчанию может быть любой элемент перечисления

Кроме того, в перечислении можно указывать простые и статические методы.

При использовании значения перечисления необходимо указать имя перечисления и конкретное значение перечисления. Разделителем этих идентификаторов служит символ .. Таким образом, если в тексте программы необходимо использовать ссылку на операционную систему Windows, то это нужно будет сделать следующим образом:
ОперационныеСистемы.Windows

Пример использования перечисления.

перечисление ОперационныеСистемы
    Linux,
    macOS,
    Windows умолчание
;

метод Скрипт()
    пер ИспользуемаяОС: ОперационныеСистемы
    ИспользуемаяОС = ОперационныеСистемы.Windows
;

В то же время, значение перечисления без упоминания имени самого перечисления (имени типа) допускается в кратком виде инструкции выбор с выбором из значений перечисления.

Пример использования перечисления в инструкции выбор.

перечисление ОперационныеСистема
    Linux,
    macOS,
    Windows умолчание
;

метод Скрипт()
    пер ИспользуемаяОС: ОперационныеСистема
    
    выбор ИспользуемаяОС
    когда Windows
        // делаем что-то в случае Windows
    когда Linux, macOS
        // делаем что-то, если macOS или Linux
    ;
;