Курс языка программирования Raku / Продвинутый уровень / Порядок выполнения / Префиксы инструкций
do и значение блока
Блок сам по себе является оператором, а не выражением, поэтому его
нельзя просто присвоить переменной. Префикс do превращает
блок в выражение, значением которого является значение
последнего оператора блока:
my $x = do {
my $a = 3;
$a + 4;
};
say $x; # 7Внутри блока можно объявлять переменные, выполнять несколько
операторов и вычислять результат; do возвращает то, во что
блок вычисляется. Это удобно, когда для получения значения нужно больше,
чем одно выражение.
do также работает перед управляющими конструкциями,
позволяя и им возвращать значение:
my $sign = do given 5 {
when * > 0 { 'positive' }
when * < 0 { 'negative' }
default { 'zero' }
};
say $sign; # positiveЗдесь do given превращает всю конструкцию
given/when в выражение, которое возвращает
positive. То же самое работает с do if и
do for. Одним словом, do — это способ
использовать блок или управляющую конструкцию там, где ожидается
значение.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Префиксы инструкций | Тест — do →
💪 Или перейдите сразу к упражнениям этого
раздела.