Курс языка программирования 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 тест по содержанию этой темы.
Навигация по курсу
← Тест — Перечисления | Тест — Значения перечислений →
💪 Или перейдите сразу к упражнениям этого
раздела.