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

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s