Raku-Kurs / Fortgeschritten / Kontrollfluss / Anweisungspräfixe / Exercises / Der Wert eines do-Blocks

Lösung: Der Wert eines do-Blocks

Hier ist eine mögliche Lösung der Aufgabe.

Code

my $label = do if 7 > 5 { 'big' } else { 'small' };

say $label;

🦋 Du findest den Quellcode in der Datei do-block.raku.

Ausgabe

big

Kommentare

  1. Ein einfaches if ist eine Anweisung und hat keinen verwendbaren Wert. Das do-Präfix verwandelt das gesamte if/else in einen Ausdruck.

  2. Da 7 > 5 wahr ist, ergibt der Ausdruck 'big', was $label zugewiesen wird. Der gleiche Trick funktioniert mit do given und do for.

  3. Die { }-Klammern sind nicht optional. Rakus if erwartet immer einen Block, daher kannst du die Zweige nicht zu if 7 > 5 'big' else 'small' verkürzen — das lässt sich nicht kompilieren und gibt den Fehler Missing block aus.

Kursnavigation

Der Wert eines do-Blocks   |   Sofortige Auswertung erzwingen