Raku-Kurs / Fortgeschritten / Mehr über eingebaute Typen / Native Typen / Exercises / Der native Standardwert
Lösung: Der native Standardwert
Hier ist eine mögliche Lösung.
Code
my num $n;
my str $s;
say $n;
say "[$s]";🦋 Du findest den Quellcode in der Datei native-default.raku.
Ausgabe
0
[]Kommentare
Eine native
numkann nicht undefiniert sein, daher beginnt sie wie ein nativerintbei0statt bei(Num).Ein nativer
strbeginnt als leerer String, weshalb die Klammern ohne Inhalt dazwischen ausgegeben werden. Keiner der nativen Typen enthält jemals einen undefinierten Wert.Die Typangaben sind hier entscheidend. Lässt du sie weg — schreibst also
my $n; my $s;— werden die Variablen zu gewöhnlichen Containern, die undefiniert (Any) starten. Dann gibtsay $nden Wert(Any)aus, und die Interpolation des undefinierten$swarnt mit „Use of uninitialized value … in string context”. Es sind die nativen Typennumundstr, die die Standardwerte0und leerer String garantieren.