v0.2.15
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Exemples / DO-DON'T — Chapitre 15 — Fonctions, méthodes et `clsmethod`
|
||||
|
||||
> Document compagnon non normatif tant qu'une règle n'est pas explicitement référencée comme normative par le chapitre.
|
||||
> Document compagnon. Les exemples illustrent les règles du chapitre ; la formulation normative reste dans le chapitre lui-même.
|
||||
|
||||
## Exemples actuellement présents dans le chapitre
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
### Exemple 1
|
||||
|
||||
@@ -48,6 +48,67 @@ return Result::Ok(value);
|
||||
return Result::Ok(Void);
|
||||
```
|
||||
|
||||
### Exemple 6
|
||||
|
||||
```text
|
||||
class User {
|
||||
const method getName() -> String {
|
||||
return this::name;
|
||||
}
|
||||
|
||||
method setName(String name) -> Void {
|
||||
this::name = name;
|
||||
return Void;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
User a = ...;
|
||||
const User b = a;
|
||||
|
||||
a::setName("John"); // OK
|
||||
a::getName(); // OK
|
||||
|
||||
b::getName(); // OK
|
||||
b::setName("John"); // ERROR
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
|
||||
```text
|
||||
réassigner un champ via this
|
||||
appeler une method non-const via this
|
||||
obtenir puis exposer comme mutable un accès disponible uniquement via this const
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
|
||||
```text
|
||||
allouer des valeurs locales
|
||||
modifier des valeurs locales mutables
|
||||
faire de l'I/O
|
||||
faire du logging
|
||||
lever une Exception déclarée
|
||||
modifier un état externe auquel elle possède indépendamment un accès mutable
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
|
||||
```text
|
||||
func display(const User user) -> Void
|
||||
```
|
||||
|
||||
### Exemple 11
|
||||
|
||||
```text
|
||||
const method getOwner() -> const User {
|
||||
return this::owner;
|
||||
}
|
||||
```
|
||||
|
||||
## 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.
|
||||
À consolider progressivement avant la baseline publique V3 et à transformer, lorsque pertinent, en tests de conformité de la toolchain.
|
||||
|
||||
Reference in New Issue
Block a user