2.2 KiB
2.2 KiB
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.
Exemples actuellement présents dans le chapitre
Exemple 1
Vector<T>
Exemple 2
a..b [a, b] bornes basse et haute incluses
a>..b (a, b] borne basse exclue, borne haute incluse
a..<b [a, b) borne basse incluse, borne haute exclue
a>..<b (a, b) bornes basse et haute exclues
Exemple 3
Range<uint64> ids = 1..100;
Exemple 4
NaN interdit comme borne
+Infinity interdit comme borne
-Infinity interdit comme borne
valeur finie autorisée
Exemple 5
a..a contient exactement a
a>..a vide
a..<a vide
a>..<a vide
Exemple 6
range::lower()
range::upper()
range::includesLower()
range::includesUpper()
range::isEmpty()
range::contains(value)
Exemple 7
Range<T> intervalle ordonné
RangeIterable<T> parcours canonique vers l'avant
RangeStep<T,Step> parcours avant avec pas explicite
RangeReverse<T> parcours canonique vers l'arrière
RangeReverseStep<T,Step> parcours arrière avec pas explicite
RangeProgression<T,Step> valeur de progression produite
Exemple 8
(range)::step(step)
Exemple 9
RangeStep<int32,int32>
RangeStep<int32,uint32>
RangeStep<char,uint32>
RangeStep<Date,Duration>
Exemple 10
(range)::reverse()
(range)::reverse()::step(step)
Exemple 11
range
[::reverse()]
[::step(step)]
Exemple 12
(250u8..255u8)::step(2u8)
Exemple 13
250 252 254
Exemple 14
(1..10)::step(4)
Exemple 15
1 5 9
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.