Curso de Raku / Avanzado / Control de flujo / Prefijos de sentencia / do y el valor de un bloque
Quiz — do
¿Qué imprime el siguiente programa?
my $s = do given -3 {
when $_ < 0 { 'neg' }
default { 'nonneg' }
};
say $s;| 1 | neg |
| 0 | nonneg |
| 0 | -3 |
| 0 | Nil |
do funciona delante de estructuras de control, no solo
de bloques simples. Aquí do given convierte todo el
given/when en una expresión. El tópico
-3 coincide con $_ < 0, así que la
expresión produce 'neg', que se almacena en
$s.