Corso di Raku / Avanzato / Controllo di flusso / Prefissi di istruzione / do e il valore di un blocco

Quiz — do

Cosa stampa il seguente programma?

my $s = do given -3 {
    when $_ < 0 { 'neg' }
    default     { 'nonneg' }
};
say $s;
1neg
0nonneg
0-3
0Nil

do funziona davanti alle strutture di controllo, non solo ai blocchi semplici. Qui do given trasforma l’intero given/when in un’espressione. Il topic -3 corrisponde a $_ < 0, quindi l’espressione produce 'neg', che viene memorizzato in $s.

do e il valore di un blocco   |   Laziness e eagerness