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;
1neg
0nonneg
0-3
0Nil

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.

do y el valor de un bloque   |   Pereza y ansiedad