Cursus Raku / Geavanceerd / Besturingsstructuren / Statement-prefixen / do en de waarde van een blok
Quiz — do
Wat print het volgende programma?
my $s = do given -3 {
when $_ < 0 { 'neg' }
default { 'nonneg' }
};
say $s;| 1 | neg |
| 0 | nonneg |
| 0 | -3 |
| 0 | Nil |
do werkt voor besturingsstructuren, niet alleen voor
kale blokken. Hier maakt do given van het hele
given/when-construct een expressie. Het
onderwerp -3 komt overeen met $_ < 0, dus
de expressie levert 'neg' op, dat wordt opgeslagen in
$s.