Raku-Kurs / Fortgeschritten / Container / Skalare Container / Exercises / Typisiert oder untypisiert
Lösung: Typisiert oder untypisiert
Hier ist eine mögliche Lösung der Aufgabe.
Code
my $untyped;
my Int $typed;
dd $untyped;
dd $typed;
$untyped = 42;
$typed = 42;
dd $untyped;
dd $typed;🦋 Du findest den Quellcode in der Datei reuse-the-container.raku.
Ausgabe
$untyped = Any
Int $typed = Int
$untyped = 42
Int $typed = 42Kommentare
ddstellt die beiden Container unterschiedlich dar. Für den untypisierten gibt es nur$untypedaus, während für den typisierten der deklarierte Typ vorangestellt wird:Int $typed. Dieses Präfix ist genau der Unterschied, den ein deklarierter Typ ausmacht.Auch die leeren Werte unterscheiden sich. Ein untypisierter Container beginnt mit dem einfachen undefinierten Wert
Any, während ein typisierter Container mit dem undefinierten Wert seines Typs beginnt,Int.Nachdem beiden
42zugewiesen wurde, sehen die Werte gleich aus, aber$typedträgt weiterhin seinen Typ und würde einen nicht-ganzzahligen Wert ablehnen — im Gegensatz zu$untyped, der alles akzeptiert.