v0.2.12
This commit is contained in:
84
examples/024-casts-et-conversions-examples.md
Normal file
84
examples/024-casts-et-conversions-examples.md
Normal file
@@ -0,0 +1,84 @@
|
||||
# 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
|
||||
|
||||
```text
|
||||
conversion de valeur
|
||||
cast de hiérarchie nominale
|
||||
bitcast de représentation binaire
|
||||
```
|
||||
|
||||
### Exemple 2
|
||||
|
||||
```text
|
||||
int8 small = ...;
|
||||
int32 large = small; // ERROR
|
||||
int32 explicitLarge = small::toInt32(); // OK
|
||||
```
|
||||
|
||||
### Exemple 3
|
||||
|
||||
```text
|
||||
Dog dog = ...;
|
||||
Animal animal = dog;
|
||||
Serializable serializable = dog;
|
||||
```
|
||||
|
||||
### Exemple 4
|
||||
|
||||
```text
|
||||
Animal animal = ...;
|
||||
|
||||
if (animal is Dog) {
|
||||
// animal est raffiné en Dog ici.
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 5
|
||||
|
||||
```text
|
||||
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
|
||||
|
||||
```text
|
||||
tryExactToInt32()
|
||||
tryFloorToInt32()
|
||||
tryCeilToInt32()
|
||||
tryRoundToInt32()
|
||||
tryTruncateToInt32()
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
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.
|
||||
Reference in New Issue
Block a user