Raku-Kurs / Fortgeschritten / Kontrollfluss / Anweisungspräfixe / do und der Wert eines Blocks

Quiz — do

Was gibt das folgende Programm aus?

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

do funktioniert nicht nur vor einfachen Blöcken, sondern auch vor Kontrollstrukturen. Hier verwandelt do given das gesamte given/when in einen Ausdruck. Das Topic -3 passt auf $_ < 0, sodass der Ausdruck 'neg' ergibt, was in $s gespeichert wird.

Kursnavigation

do und der Wert eines Blocks   |   Laziness und Eagerness