63. Тип данных enum в Perl 6

В Perl 6 есть тип данных для создания перечислений — enum. Его использовать предельно просто:

enum colours <red yellow green>;

Так мы создали тип и три значения, которые теперь доступны как константы, но без сигилов:

say red;
say green;

На печати появятся названия как они есть:

red
green

Если необходимы числовые значения, используйте метод Int:

say red.Int;    # 0
say yellow.Int; # 1
say green.Int;  # 2

По умолчанию отсчет ведется с нуля, но это можно изменить, указав нужное значение первому элементу перечисления:

enum colours (red => 10, 'yellow', 'green');

say red;        # red
say green;      # green
say yellow;     # yellow

say red.Int;    # 10
say yellow.Int; # 11
say green.Int;  # 12

Обратите внимание, что Perl 6 понял, что первое значение — это пара red => 10, а дальше идут две строки, которые он не попытался объединить в пару yellow => 'green'.

Если необходимо, то можно сэкономить на кавычках, но при этом использовать чуть иные цитирующие кавычки:

enum colours << :red(10) yellow green >>;

Разумеется, можно присвоить свои значения каждому элементу:

enum colours (red => 10, yellow => 20, green => 30);

say red.Int;    # 10
say yellow.Int; # 20
say green.Int;  # 30

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *