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 • Български • Русский • Українська