Cursus Raku / Elementa / Plura de generibus / Typis variabiles
Allomorphes
Considera sequens programma. Antequam id curras, potesne dicere quae valores inputorum id frangant et in qua linea?
my $input = prompt 'Enter something: ';
my Int $i = $input;
my Str $s = $input;
say $i;
say $s;Tres variabiles scalare hic creantur. Duae earum, $i et
$s, sunt variabiles typatae. Id significat $i
solum numeros integros continere posse et $s solum chordas
continere posse.
Typus reditus prompt dependet a characteribus quos typis
dedimus. Si chorda inputi numerum integrum repraesentare potest, eventus
erit typi IntStr, quod est et Int et
Str, et sic assignari potest vel variabili Int
vel Str. Ergo, si, exempli gratia, 1234
intras, programma non frangitur.
$ raku allomorphs.raku
Enter something: 1234
1234
1234Typus IntStr est exemplum sic dicti allomorphi
— typus datae qui duos alios typos coniungit. Hic sunt pauca alia
exempla.
Si chordam intras quae numerus integer esse non potest, programma
frangitur momento quo $input ad $i
assignamus:
$ raku allomorphs.raku
Enter something: Hello, World!
Type check failed in assignment to $i; expected Int but got Str ("Hello, World!")
in block <unit> at allomorphs.raku line 2Animadverte quod errorem accipis etiam si chorda inputi ad numerum converti potest, sed non ad integrum. Cum non sit possibile numerum puncti-fluctuantis vel rationalem in continens integrum ponere, Raku exceptionem emittet:
$ raku allomorphs.raku
Enter something: 3.14
Type check failed in assignment to $i; expected Int but got RatStr (RatStr.new(3.14, "3....)
in block <unit> at allomorphs.raku line 2Secunda assignatio, $s = $input, numquam frangetur quia
chorda potest quemlibet inputum accipere.
🦋 Codicem fontis huius programmatis invenire potes in archivo allomorphs.raku.
Navigatio cursus
← Quiz — convertendo generibus | Creare variabiles omnium notorum generum →
💪 Vel recta ad exercitationes huius
sectionis i.