Курс по 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 в някои други езици, тук няма
преминаване надолу (fall-through): щом даден 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 упражнения. Разгледайте всички теми в раздела, преди да се захванете с практиката.
Навигация в курса
← Тест —
LEAVE | Съпоставяне с диапазони, типове
и условия →