Kurso de Raku / Progresinta / Ujoj / Skalaraj ujoj / Exercises / Tipita aŭ netipita
Solvo: Tipita aŭ netipita
Jen ebla solvo de la tasko.
Kodo
my $untyped;
my Int $typed;
dd $untyped;
dd $typed;
$untyped = 42;
$typed = 42;
dd $untyped;
dd $typed;🦋 Vi povas trovi la fontkodon en la dosiero reuse-the-container.raku.
Eligo
$untyped = Any
Int $typed = Int
$untyped = 42
Int $typed = 42Komentoj
ddraportas la du ujojn malsame. Por la netipita ĝi presas nur$untyped, dum por la tipita ĝi antaŭmetas la deklaritan tipon:Int $typed. Tiu prefikso estas ĝuste la diferenco, kiun faras deklarita tipo.Ankaŭ la malplenaj valoroj diferencas. Netipita ujo komenciĝas ĉe la nuda nedifinita valoro
Any, dum tipita ujo komenciĝas ĉe la nedifinita valoro de sia tipo,Int.Post kiam ambaŭ ricevas
42, la valoroj aspektas same, sed$typedankoraŭ portas sian tipon kaj rifuzus ne-entjeran valoron — malsame ol$untyped, kiu akceptas ion ajn.