Raku-Kurs / Fortgeschritten / Kontrollfluss / Anweisungspräfixe / Exercises / Eine Warnung unterdrücken
Lösung: Eine Warnung unterdrücken
Hier ist eine mögliche Lösung der Aufgabe.
Code
my $name;
my $greeting = quietly { "Hello, " ~ $name ~ "!" };
say $greeting;🦋 Du findest den Quellcode in der Datei silence-warning.raku.
Ausgabe
Hello, !Kommentare
Die Interpolation des undefinierten
$namein den String löst normalerweise eine Warnung wegen der Verwendung eines uninitialisierten Werts aus. Das Einwickeln des Ausdrucks inquietlyunterdrückt diese, sodass nur die Begrüßung ausgegeben wird.Wie
dogibtquietlyden Wert seines Blocks zurück, sodass der zusammengesetzte String (wobei der fehlende Name eine leere Lücke hinterlässt) in$greetinggespeichert wird.quietlyverbirgt nur die Warnung — der Wert ist weiterhin undefiniert. Wenn du stattdessen mit dem fehlenden Wert umgehen möchtest, verwende einen Standardwert mit dem Defined-or-Operator//:$name // 'friend'ergibt'friend', wenn$nameundefiniert ist, sodass"Hello, " ~ ($name // 'friend') ~ "!"Hello, friend!ohne jegliche Warnung ausgibt.