Cursus Raku / Elementa / 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
1234
Typus 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 2
Animadverte 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 2
Secunda assignatio, $s = $input, numquam frangetur quia chorda potest quemlibet inputum accipere.
🦋 Codicem fontis huius programmatis invenire potes in archivo allomorphs.raku.
Cursus navigatio
← Typis variabiles / Typus conversio pro typis variabiles | 💪 Exercitationes: Typis variabiles →
Haec pagina automatice translata est per ChatGPT 4o. Originalis Anglicus textus
Translationes huius paginae: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська