Raku kurss / Padziļināti / Konteineri / Skalārie konteineri
Tipu ierobežojumi
Pamatu daļā jūs redzējāt, kā iestatīt mainīgā tipu, izmantojot tipa ierobežojumu. Ir vērts uzsvērt, ka tieši konteineris uzliek šo ierobežojumu vērtībām, ko tas drīkst pieņemt.
Šī deklarācija izveido skalāru konteineru, kas var glabāt tikai veselus skaitļus:
my Int $int;Tipizēts konteineris pieņem tikai tādas vērtības, kas atbilst tā tipam, tāpēc visas šīs piešķiršanas ir derīgas:
my Int $int;
$int = 123; # directly an integer
say $int;
$int = 100 + 23; # the result is an integer
say $int;
$int = '123'.Int; # a string converted to an integer
say $int;Raku šajā gadījumā neveic automātisku tipu pārveidošanu. Tāpēc
piešķirt peldošā komata skaitli (kas Raku ir Rat vērtība)
nav atļauts:
my Int $int;
$int = 123.45;Kļūda tiek konstatēta jau kompilācijas laikā:
===SORRY!=== Error while compiling t.raku
Cannot assign a literal of type Rat (123.45) to a variable ($int) of
type Int. You can declare the variable to be of type Real, or try to
coerce the value with 123.45.Int or Int(123.45), or just write the value
as 123.
at t.raku:2
------> <BOL>⏏$int = 123.45;Lai izvairītos no kļūdas, pārveidojiet vērtību tieši:
my Int $int;
$int = 123.45.Int;
say $int; # 123Neļaujiet sevi mulsināt diviem punktiem virknē
123.45.Int. Pirmais ir decimālais atdalītājs; otrais izsauc
Int metodi uz racionālās (Rat) vērtības.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Datu tipi un skalārie konteineri | Viktorīna — Tipu ierobežojumi →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.