1.9 KiB
1.9 KiB
Exemples / DO-DON'T — Chapitre 5 — Types primitifs
Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
Exemples actuellement présents dans le chapitre
Exemple 1
int8 int16 int32 int64 int128 int256
uint8 uint16 uint32 uint64 uint128 uint256
float16 float32 float64 float128
bool
char
Exemple 2
-> Void
Result<Void,E>
Result<Void>
Exemple 3
func save() -> Result<Void> {
...
return Result::Ok(Void);
}
Exemple 4
Void value;
field Void
Option<Void>
Nullable<Void>
Array<Void>
Range<Void>
Exemple 5
value::toString()
float16::fromInt32(value)
Exemple 6
overflow statiquement prouvable -> erreur de compilation
overflow dynamique -> faute runtime déterministe
Exemple 7
wrapping
saturating
checked
Exemple 8
statique -> erreur compilation
dynamique -> faute runtime
Exemple 9
a == (a / b) * b + (a % b)
Exemple 10
42 decimal
0b101010 binary
0o52 octal
0x2a hexadecimal
Exemple 11
1_000_000
0b1010_1100
0xffff_ffff
1.234_567
1.0e1_000
Exemple 12
1.0
0.5
42.25
1e6
1.5e-3
Exemple 13
i8 i16 i32 i64 i128 i256
u8 u16 u32 u64 u128 u256
f16 f32 f64 f128
Exemple 14
42i32
42u64
1.5f16
Exemple 15
0x1.0p0
0x1.8p1
0x1.ffp10
0x1.0p-20
Exemple 16
1f16
1::toFloat16()
Exemple 17
bitcast<float16>(value)
DO / DON'T / WHY / compiler error / edge cases
La couverture structurée de cette section sera enrichie au fur et à mesure de la fermeture des règles du chapitre. La migration 0.2.12 conserve volontairement les exemples historiques dans le chapitre afin de ne perdre aucun contexte normatif.