Files
saselang-bible/examples/005-types-primitifs-examples.md
2026-09-12 18:12:13 +02:00

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.