Курс по 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


💪 Или преминете направо към упражненията в този раздел.