v0.2.16
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# Exemples / DO-DON'T — Chapitre 4 — Couches de l'écosystème V1
|
||||
|
||||
> 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
|
||||
|
||||
@@ -72,6 +72,12 @@ FFI helpers
|
||||
plateforme
|
||||
```
|
||||
|
||||
### Exemple 4
|
||||
|
||||
```text
|
||||
saselang/mapdb*
|
||||
```
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -231,6 +231,13 @@ t"..." template structuré, réservé
|
||||
\u{...}
|
||||
```
|
||||
|
||||
### Exemple 24
|
||||
|
||||
```text
|
||||
String a = "abcdef";
|
||||
String b = a::substring(1..<4);
|
||||
```
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -1,17 +1,165 @@
|
||||
# Exemples / DO-DON'T — Chapitre 22 — Collections et itération
|
||||
|
||||
> 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
|
||||
|
||||
```text
|
||||
Vector<T>
|
||||
T primitif -> valeur by-value
|
||||
T struct -> valeur by-value
|
||||
T class -> référence de classe
|
||||
```
|
||||
|
||||
### Exemple 2
|
||||
|
||||
```text
|
||||
Array<int32> values = [1, 2, 3];
|
||||
Array<int32> empty = [];
|
||||
```
|
||||
|
||||
### Exemple 3
|
||||
|
||||
```text
|
||||
Array<T>::filled(uint64 length, T value)
|
||||
```
|
||||
|
||||
### Exemple 4
|
||||
|
||||
```text
|
||||
User firstUser = ...;
|
||||
User otherUser = ...;
|
||||
|
||||
Array<User> users = Array<User>::filled(3, firstUser);
|
||||
users[1] = otherUser; // OK si l'accès n'est pas const
|
||||
```
|
||||
|
||||
### Exemple 5
|
||||
|
||||
```text
|
||||
Array<T>::empty()
|
||||
```
|
||||
|
||||
### Exemple 6
|
||||
|
||||
```text
|
||||
StaticArray<int32, 3> values = [10, 20, 30];
|
||||
StaticArray<int32, 0> empty = [];
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
|
||||
```text
|
||||
StaticArray<T,N>::filled(T value)
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
|
||||
```text
|
||||
Array<int32> values = ...;
|
||||
Slice<int32> part = values::slice(10..<20);
|
||||
|
||||
part[0] = 42; // modifie values[10]
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
|
||||
```text
|
||||
reste attachée à la portion qu'elle désigne
|
||||
conserve une longueur fixe
|
||||
n'est pas redimensionnable
|
||||
n'est pas déplaçable vers une autre portion
|
||||
peut modifier les éléments uniquement si l'accès source l'autorise
|
||||
ne peut jamais augmenter les droits de mutabilité de la source
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
|
||||
```text
|
||||
const Array<User> users = ...;
|
||||
const Slice<User> part = users::slice(0..<4);
|
||||
|
||||
part[0] = otherUser; // ERROR
|
||||
part[0]::setName("Alice"); // ERROR
|
||||
part[0]::getName(); // OK
|
||||
```
|
||||
|
||||
### Exemple 11
|
||||
|
||||
```text
|
||||
Iterable<T>
|
||||
↓
|
||||
Collection<T>
|
||||
↓
|
||||
List<T>
|
||||
↓
|
||||
SettableList<T>
|
||||
↓
|
||||
ResizableList<T>
|
||||
```
|
||||
|
||||
### Exemple 12
|
||||
|
||||
```text
|
||||
count() -> uint64
|
||||
isEmpty() -> bool
|
||||
contains(const T value) -> bool
|
||||
```
|
||||
|
||||
### Exemple 13
|
||||
|
||||
```text
|
||||
ordre stable
|
||||
indexation positionnelle en lecture
|
||||
length() -> uint64
|
||||
```
|
||||
|
||||
### Exemple 14
|
||||
|
||||
```text
|
||||
count() == length()
|
||||
```
|
||||
|
||||
### Exemple 15
|
||||
|
||||
```text
|
||||
list[index] = value;
|
||||
```
|
||||
|
||||
### Exemple 16
|
||||
|
||||
```text
|
||||
SettableList<User> users = ...;
|
||||
const SettableList<User> readonly = users;
|
||||
```
|
||||
|
||||
### Exemple 17
|
||||
|
||||
```text
|
||||
StaticArray<T,N>
|
||||
List<T>
|
||||
SettableList<T>
|
||||
pas ResizableList<T>
|
||||
|
||||
Array<T>
|
||||
List<T>
|
||||
SettableList<T>
|
||||
pas ResizableList<T>
|
||||
|
||||
Slice<T>
|
||||
List<T>
|
||||
SettableList<T>
|
||||
pas ResizableList<T>
|
||||
|
||||
Vector<T>
|
||||
List<T>
|
||||
SettableList<T>
|
||||
ResizableList<T>
|
||||
```
|
||||
|
||||
### Exemple 18
|
||||
|
||||
```text
|
||||
a..b [a, b] bornes basse et haute incluses
|
||||
a>..b (a, b] borne basse exclue, borne haute incluse
|
||||
@@ -19,13 +167,13 @@ a..<b [a, b) borne basse incluse, borne haute exclue
|
||||
a>..<b (a, b) bornes basse et haute exclues
|
||||
```
|
||||
|
||||
### Exemple 3
|
||||
### Exemple 19
|
||||
|
||||
```text
|
||||
Range<uint64> ids = 1..100;
|
||||
```
|
||||
|
||||
### Exemple 4
|
||||
### Exemple 20
|
||||
|
||||
```text
|
||||
NaN interdit comme borne
|
||||
@@ -34,7 +182,7 @@ NaN interdit comme borne
|
||||
valeur finie autorisée
|
||||
```
|
||||
|
||||
### Exemple 5
|
||||
### Exemple 21
|
||||
|
||||
```text
|
||||
a..a contient exactement a
|
||||
@@ -43,7 +191,7 @@ a..<a vide
|
||||
a>..<a vide
|
||||
```
|
||||
|
||||
### Exemple 6
|
||||
### Exemple 22
|
||||
|
||||
```text
|
||||
range::lower()
|
||||
@@ -54,7 +202,7 @@ range::isEmpty()
|
||||
range::contains(value)
|
||||
```
|
||||
|
||||
### Exemple 7
|
||||
### Exemple 23
|
||||
|
||||
```text
|
||||
Range<T> intervalle ordonné
|
||||
@@ -65,13 +213,13 @@ RangeReverseStep<T,Step> parcours arrière avec pas explicite
|
||||
RangeProgression<T,Step> valeur de progression produite
|
||||
```
|
||||
|
||||
### Exemple 8
|
||||
### Exemple 24
|
||||
|
||||
```text
|
||||
(range)::step(step)
|
||||
```
|
||||
|
||||
### Exemple 9
|
||||
### Exemple 25
|
||||
|
||||
```text
|
||||
RangeStep<int32,int32>
|
||||
@@ -80,14 +228,14 @@ RangeStep<char,uint32>
|
||||
RangeStep<Date,Duration>
|
||||
```
|
||||
|
||||
### Exemple 10
|
||||
### Exemple 26
|
||||
|
||||
```text
|
||||
(range)::reverse()
|
||||
(range)::reverse()::step(step)
|
||||
```
|
||||
|
||||
### Exemple 11
|
||||
### Exemple 27
|
||||
|
||||
```text
|
||||
range
|
||||
@@ -95,25 +243,25 @@ range
|
||||
[::step(step)]
|
||||
```
|
||||
|
||||
### Exemple 12
|
||||
### Exemple 28
|
||||
|
||||
```text
|
||||
(250u8..255u8)::step(2u8)
|
||||
```
|
||||
|
||||
### Exemple 13
|
||||
### Exemple 29
|
||||
|
||||
```text
|
||||
250 252 254
|
||||
```
|
||||
|
||||
### Exemple 14
|
||||
### Exemple 30
|
||||
|
||||
```text
|
||||
(1..10)::step(4)
|
||||
```
|
||||
|
||||
### Exemple 15
|
||||
### Exemple 31
|
||||
|
||||
```text
|
||||
1 5 9
|
||||
@@ -121,4 +269,4 @@ range
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Exemples / DO-DON'T — Chapitre 37 — Dépendances et scopes
|
||||
|
||||
> 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
|
||||
|
||||
@@ -255,6 +255,18 @@ import type namespace.Type
|
||||
as LocalType;
|
||||
```
|
||||
|
||||
### Exemple 30
|
||||
|
||||
```text
|
||||
MapDB-like
|
||||
RocksDB-like
|
||||
PostgreSQL-compatible components
|
||||
SDL-like multimedia
|
||||
WebKit/WebView integrations ou remplacements
|
||||
bibliothèques image/audio/vidéo
|
||||
outils UI et multimedia
|
||||
```
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
Aucun bloc d'exemple explicite dans cette révision.
|
||||
Aucun bloc d’exemple explicite dans cette révision.
|
||||
|
||||
## DO / DON'T / WHY / compiler error / edge cases
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Exemples extraits du chapitre
|
||||
|
||||
Aucun bloc d'exemple explicite dans cette révision.
|
||||
Aucun bloc d’exemple explicite dans cette révision.
|
||||
|
||||
## DO / DON'T / WHY / compiler error / edge cases
|
||||
|
||||
|
||||
Reference in New Issue
Block a user