Files
saselang-bible/examples/024-casts-et-conversions-examples.md
2026-09-12 08:56:27 +02:00

1.7 KiB

Exemples / DO-DON'T — Chapitre 24 — Casts et conversions

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

conversion de valeur
cast de hiérarchie nominale
bitcast de représentation binaire

Exemple 2

int8 small = ...;
int32 large = small;                 // ERROR
int32 explicitLarge = small::toInt32(); // OK

Exemple 3

Dog dog = ...;
Animal animal = dog;
Serializable serializable = dog;

Exemple 4

Animal animal = ...;

if (animal is Dog) {
    // animal est raffiné en Dog ici.
}

Exemple 5

toTarget()
    conversion exacte et totale

tryToTarget()
    conversion exacte pour la valeur courante, récupérable si impossible

roundToTarget()
    perte de précision explicitement acceptée, conversion totale

tryRoundToTarget()
    perte de précision explicitement acceptée, mais conversion pouvant échouer

saturateToTarget()
    saturation explicite lorsqu'aucun arrondi supplémentaire n'est nécessaire

saturatingRoundToTarget()
    arrondi + saturation explicitement annoncés

wrapToTarget()
    wrapping entier explicite

Exemple 6

tryExactToInt32()
tryFloorToInt32()
tryCeilToInt32()
tryRoundToInt32()
tryTruncateToInt32()

Exemple 7

annexes/A-numeric-conversions.md

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.