Курс Raku / Розширені / Докладніше про вбудовані типи / Перелічення 🆕

Значення та ключі

Кожна константа перелічення несе і ім’я, і число. Метод .value дає число, а метод .key — ім’я у вигляді рядка:

enum Colour <red green blue>;

say green.value; # 1
say green.key;   # green

Приймати автоматичну нумерацію від нуля не обов’язково. Запишіть константи парами, щоб обрати значення самостійно:

enum Day (Mon => 1, Tue => 2, Wed => 3, Thu => 4, Fri => 5);

say Tue.value; # 2
say Fri.value; # 5

Тут робочий тиждень пронумеровано від одиниці, а не від нуля.

Сам тип перелічення може перелічити всі свої константи. Метод .enums повертає відображення кожного імені на його значення:

enum Colour <red green blue>;

say Colour.enums;       # Map.new((blue => 2, green => 1, red => 0))
say Colour.enums.elems; # 3

Маючи .value, .key та .enums, ви можете вільно переходити від константи до її числа, від числа назад до даних і по всьому набору, — саме це й робить перелічення корисними для меню, станів і таблиць пошуку.

Практика

Виконайте 1 тест за змістом цієї теми.

Навігація курсом

Тест — Перелічення   |   Тест — Значення enum


💪 Або перейдіть одразу до вправ цього розділу.