1.8 KiB
1.8 KiB
Exemples / DO-DON'T — Chapitre 5 — Types primitifs
Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
Exemples extraits du 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)
Exemple 18
where T implements Numeric
DO / DON'T / WHY / compiler error / edge cases
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.