Курс языка программирования Raku / Продвинутый уровень / Порядок выполнения / Префиксы инструкций / do и значение блока
Тест — do
Что напечатает следующая программа?
my $s = do given -3 {
when $_ < 0 { 'neg' }
default { 'nonneg' }
};
say $s;| 1 | neg |
| 0 | nonneg |
| 0 | -3 |
| 0 | Nil |
do работает перед управляющими конструкциями, а не
только перед обычными блоками. Здесь do given превращает
всю конструкцию given/when в выражение. Топик
-3 соответствует условию $_ < 0, поэтому
выражение возвращает 'neg', которое сохраняется в
$s.