Kurso de Raku / Progresinta / Pli pri la enkonstruitaj tipoj / Denaskaj tipoj
Grandecaj tipoj kaj superfluo
Krom la simpla int, Raku havas entjerojn kun fiksa
bitlarĝo: int8, int16, int32,
int64 kaj iliajn sensignajn partnerojn uint8,
uint16, uint32, uint64. La nombro
indikas, kiom da bitoj la valoro okupas.
Fiksa larĝo signifas fiksan amplekson. int8 enhavas
valorojn de -128 ĝis 127; uint8
enhavas 0 ĝis 255. Ĉar la stokado ne povas
kreski, transiri la supron ĉirkaŭvolvas al la malsupro — tio estas
superfluo:
my int8 $i = 127;
$i++;
say $i; # -128Aldoni unu al la plej granda int8 ne produktas
128 (kiu ne konvenus); ĝi ĉirkaŭvolvas al la plej malgranda
valoro, -128. Sensignaj tipoj ankaŭ ĉirkaŭvolvas:
my uint8 $u = 255;
$u++;
say $u; # 0Tio estas la malo de normala Int, kiu simple kreskas
tiel grande kiom necese kaj neniam superfluiĝas. La kompromiso estas la
tuta celo de grandigitaj indiĝenaj tipoj: vi akceptas fiksan amplekson
kontraŭ antaŭvidebla, kompakta, rapida stokado.
Uzu grandigitan indiĝenan tipon kiam vi konas la amplekson de viaj
datumoj kaj volas la efikecon — ekzemple, bajtojn de binaraj datumoj en
uint8-tabelo. Por ordinara aritmetiko, kie nombroj povas
kreski senlime, restu ĉe Int.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Denaskaj tipoj | Kvizo — Superfluo →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.