Курс по 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 →
💪 Или преминете направо към упражненията в този
раздел.