Raku kurss / Padziļināti / Vairāk par iebūvētajiem tipiem / Natīvie tipi 🆕
Izmēra tipi un pārpilde
Papildus parastajam int, Raku piedāvā veselos skaitļus
ar fiksētu bitu platumu: int8, int16,
int32, int64 un to neparakstītos partnerus
uint8, uint16, uint32,
uint64. Skaitlis norāda, cik bitus vērtība aizņem.
Fiksēts platums nozīmē fiksētu diapazonu. int8 satur
vērtības no -128 līdz 127; uint8
satur no 0 līdz 255. Tā kā krātuve nevar
pieaugt, pārkāpjot augšējo robežu, vērtība apgriežas uz apakšējo — tā ir
pārplūšana:
my int8 $i = 127;
$i++;
say $i; # -128Pievienojot vieninieku lielākajam int8, netiek iegūts
128 (kas neietilptu); vērtība apgriežas uz mazāko vērtību,
-128. Neparakstītie tipi arī apgriežas:
my uint8 $u = 255;
$u++;
say $u; # 0Tas ir pretēji parastajam Int, kurš vienkārši pieaug tik
liels, cik nepieciešams, un nekad nepārplūst. Kompromiss ir viss natīvo
tipu ar fiksētu izmēru jēga: jūs pieņemat fiksētu diapazonu apmaiņā pret
paredzamu, kompaktu un ātru krātuvi.
Izmantojiet natīvo tipu ar fiksētu izmēru, kad zināt savu datu
diapazonu un vēlaties efektivitāti — piemēram, bināro datu baiti
uint8 masīvā. Parastai aritmētikai, kur skaitļi var pieaugt
bez ierobežojumiem, palieciet pie Int.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Viktorīna — Natīvie tipi | Viktorīna — Pārpilde →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.