74 lines
1.3 KiB
Markdown
74 lines
1.3 KiB
Markdown
# Exemples / DO-DON'T — Chapitre 23 — `Option<T>` et `Nullable<T>`
|
|
|
|
> 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
|
|
Option<int32>
|
|
Option<String>
|
|
Option<MyStruct>
|
|
Option<MyClass>
|
|
```
|
|
|
|
### Exemple 2
|
|
|
|
```text
|
|
Option<MyClass>::None
|
|
```
|
|
|
|
### Exemple 3
|
|
|
|
```text
|
|
Nullable<MyClass>::Null
|
|
```
|
|
|
|
### Exemple 4
|
|
|
|
```text
|
|
T?
|
|
```
|
|
|
|
### Exemple 5
|
|
|
|
```text
|
|
Option<Nullable<MyClass>> autorisé
|
|
Nullable<Option<MyClass>> interdit
|
|
Nullable<Nullable<MyClass>> interdit
|
|
```
|
|
|
|
### Exemple 6
|
|
|
|
```text
|
|
Option::None
|
|
Option::Some(Nullable<MyClass>::Null)
|
|
Option::Some(instance non nulle)
|
|
```
|
|
|
|
### Exemple 7
|
|
|
|
```text
|
|
Option<T> absence sémantique
|
|
Nullable<T> nullabilité représentationnelle
|
|
```
|
|
|
|
### Exemple 8
|
|
|
|
```text
|
|
match (value) {
|
|
Option::Some(uint32 number) => {
|
|
...
|
|
}
|
|
|
|
Option::None => {
|
|
...
|
|
}
|
|
}
|
|
```
|
|
|
|
## 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.
|