Курс Raku / Розширені / Порядок виконання
given та when
Коли програмі треба обрати між кількома варіантами, ланцюжок
перевірок if та elsif може стати довгим і
одноманітним. У такій ситуації конструкція
given/when часто зрозуміліша. Вона схожа на
оператор switch, що є в інших мовах.
Блок given бере значення й робить його топіком
— спеціальною змінною $_. Далі кожен блок when
порівнюється з цим топіком, і виконується перший, що збігся:
my $n = 2;
given $n {
when 1 { say 'one' }
when 2 { say 'two' }
when 3 { say 'three' }
}Ця програма виводить:
twoНа відміну від switch у деяких інших мовах, тут немає
провалювання: щойно якийсь when збігся, виконується його
блок, і блок given завершується. Решта блоків
when не перевіряється.
Блок default
Блок default виконується, коли не збігся жоден із блоків
when. Він відіграє ту саму роль, що й гілка
else в операторі if:
my $n = 5;
given $n {
when 1 { say 'one' }
when 2 { say 'two' }
default { say 'many' }
}Оскільки $n не дорівнює ані 1, ані
2, програма виводить:
manyЩе в цьому розділі
Практика
Виконайте 1 тест за змістом цього розділу.
Вправи
У цьому розділі 3 вправи. Перш ніж братися до практики, вивчіть усі теми розділу.