Kurso de Raku / Esencoj / Pli pri tipoj / Datentipa konvertado / Exercises / Veraj kaj falsaj nombroj
Solvo: Veraj kaj falsaj nombroj
La plej rapida maniero esplori la demandon estas ĵeti plenmanon da
kandidataj nombroj al la operatoro ? samtempe kaj rigardi
la rezultojn flank-al-flanke:
for -2, -0.5, -1/3, 0, 1/3, 0.5, 2 -> $n {
say "$n -> {?$n}";
}La eligo evidentigas la ŝablonon — ĉiu valoro presas
True krom tiu en la mezo:
-2 -> True
-0.5 -> True
-0.333333 -> True
0 -> False
0.333333 -> True
0.5 -> True
2 -> True
Do la signo kaj la grandeco tute ne gravas: nur nulo estas malvera.
La sekva demando estas, ĉu tio validas por ĉiu numera tipo, ĉar
0, 0.0 kaj 0e0 estas respektive
Int, Rat kaj Num:
my Int $int-zero = 0;
say ?$int-zero; # False
my Rat $rat-zero = 0.0;
say ?$rat-zero; # False
my Num $num-zero = 0e0;
say ?$num-zero; # FalseKompreneble, nenio ŝanĝiĝas se vi provas unue nei la nombron:
my $int = 0;
say ?(-$int); # False🦋 Vi povas trovi la plenan programon kun la supra ekzemplo en la dosiero true-false-numbers.raku.