semantic-typescript 0.1.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collectable.d.ts +84 -0
- package/dist/collectable.js +479 -0
- package/dist/collector.d.ts +26 -0
- package/dist/collector.js +86 -0
- package/dist/factory.d.ts +12 -0
- package/dist/factory.js +240 -0
- package/dist/guard.d.ts +23 -0
- package/dist/guard.js +85 -0
- package/dist/hook.d.ts +2 -0
- package/dist/hook.js +64 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +9 -0
- package/dist/optional.d.ts +18 -0
- package/dist/optional.js +65 -0
- package/dist/semantic.d.ts +9 -289
- package/dist/semantic.js +38 -1733
- package/dist/statistics.d.ts +101 -0
- package/dist/statistics.js +765 -0
- package/dist/symbol.d.ts +10 -0
- package/dist/symbol.js +10 -0
- package/dist/utility.d.ts +49 -0
- package/dist/utility.js +17 -0
- package/package.json +3 -2
- package/readme.cn.md +102 -57
- package/readme.de.md +120 -73
- package/readme.es.md +114 -67
- package/readme.fr.md +117 -70
- package/readme.jp.md +115 -70
- package/readme.kr.md +116 -71
- package/readme.md +114 -67
- package/readme.ru.md +115 -70
- package/readme.tw.md +131 -69
package/readme.es.md
CHANGED
|
@@ -12,37 +12,43 @@ A diferencia del procesamiento sincrónico tradicional, Semantic adopta un modo
|
|
|
12
12
|
npm install semantic-typescript
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
## Tipos
|
|
15
|
+
## Tipos básicos
|
|
16
16
|
|
|
17
17
|
| Tipo | Descripción |
|
|
18
18
|
|------|-------------|
|
|
19
19
|
| `Invalid<T>` | Tipo que extiende null o undefined |
|
|
20
20
|
| `Valid<T>` | Tipo que excluye null y undefined |
|
|
21
21
|
| `MaybeInvalid<T>` | Tipo que puede ser null o undefined |
|
|
22
|
-
| `Primitive` |
|
|
23
|
-
| `MaybePrimitive<T>` | Tipo que puede ser
|
|
24
|
-
| `OptionalSymbol` |
|
|
25
|
-
| `SemanticSymbol` |
|
|
26
|
-
| `CollectorsSymbol` |
|
|
27
|
-
| `CollectableSymbol` |
|
|
28
|
-
| `OrderedCollectableSymbol` |
|
|
29
|
-
| `WindowCollectableSymbol` |
|
|
30
|
-
| `StatisticsSymbol` |
|
|
31
|
-
| `NumericStatisticsSymbol` |
|
|
32
|
-
| `BigIntStatisticsSymbol` |
|
|
33
|
-
| `UnorderedCollectableSymbol` |
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
22
|
+
| `Primitive` | Conjunto de tipos primitivos |
|
|
23
|
+
| `MaybePrimitive<T>` | Tipo que puede ser de tipo primitivo |
|
|
24
|
+
| `OptionalSymbol` | Símbolo identificador de la clase Optional |
|
|
25
|
+
| `SemanticSymbol` | Símbolo identificador de la clase Semantic |
|
|
26
|
+
| `CollectorsSymbol` | Símbolo identificador de la clase Collector |
|
|
27
|
+
| `CollectableSymbol` | Símbolo identificador de la clase Collectable |
|
|
28
|
+
| `OrderedCollectableSymbol` | Símbolo identificador de la clase OrderedCollectable |
|
|
29
|
+
| `WindowCollectableSymbol` | Símbolo identificador de la clase WindowCollectable |
|
|
30
|
+
| `StatisticsSymbol` | Símbolo identificador de la clase Statistics |
|
|
31
|
+
| `NumericStatisticsSymbol` | Símbolo identificador de la clase NumericStatistics |
|
|
32
|
+
| `BigIntStatisticsSymbol` | Símbolo identificador de la clase BigIntStatistics |
|
|
33
|
+
| `UnorderedCollectableSymbol` | Símbolo identificador de la clase UnorderedCollectable |
|
|
34
|
+
|
|
35
|
+
## Interfaces funcionales
|
|
36
|
+
|
|
37
|
+
| Interfaz | Descripción |
|
|
38
|
+
|----------|-------------|
|
|
39
|
+
| `Runnable` | Función sin parámetros y sin valor de retorno |
|
|
40
|
+
| `Supplier<R>` | Función sin parámetros que devuelve R |
|
|
41
|
+
| `Functional<T, R>` | Función de transformación de un solo parámetro |
|
|
38
42
|
| `BiFunctional<T, U, R>` | Función de transformación de dos parámetros |
|
|
39
|
-
| `BiPredicate<T, U>` | Función de predicado de dos parámetros |
|
|
40
|
-
| `Comparator<T>` | Función de comparación |
|
|
41
43
|
| `TriFunctional<T, U, V, R>` | Función de transformación de tres parámetros |
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
44
|
+
| `Predicate<T>` | Función de predicado de un solo parámetro |
|
|
45
|
+
| `BiPredicate<T, U>` | Función de predicado de dos parámetros |
|
|
46
|
+
| `TriPredicate<T, U, V>` | Función de predicado de tres parámetros |
|
|
47
|
+
| `Consumer<T>` | Función de consumo de un solo parámetro |
|
|
48
|
+
| `BiConsumer<T, U>` | Función de consumo de dos parámetros |
|
|
49
|
+
| `TriConsumer<T, U, V>` | Función de consumo de tres parámetros |
|
|
50
|
+
| `Comparator<T>` | Función de comparación de dos parámetros |
|
|
51
|
+
| `Generator<T>` | Función generadora (núcleo y base) |
|
|
46
52
|
|
|
47
53
|
```typescript
|
|
48
54
|
// Ejemplos de uso de tipos
|
|
@@ -136,15 +142,34 @@ console.log(emptyOpt.orElse(100)); // Output 100
|
|
|
136
142
|
| `Collector.shortable(identity, interruptor, accumulator, finisher)` | Crea un colector interrumpible | O(1) | O(1) |
|
|
137
143
|
|
|
138
144
|
```typescript
|
|
139
|
-
// Ejemplos de
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
)
|
|
145
|
+
// Ejemplos de conversión de colectores
|
|
146
|
+
const numbers = from([3, 1, 4, 1, 5, 9, 2, 6, 5]);
|
|
147
|
+
|
|
148
|
+
// Prioridad al rendimiento: usar colector no ordenado
|
|
149
|
+
const unordered = numbers
|
|
150
|
+
.filter(n => n > 3)
|
|
151
|
+
.toUnoredered();
|
|
152
|
+
|
|
153
|
+
// Se necesita ordenación: usar colector ordenado
|
|
154
|
+
const ordered = numbers.sorted();
|
|
145
155
|
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
// Cuenta la cantidad de elementos
|
|
157
|
+
let count = Collector.full(
|
|
158
|
+
() => 0, // Valor inicial
|
|
159
|
+
(accumulator, element) => accumulator + element, // Acumular
|
|
160
|
+
(accumulator) => accumulator // Finalizar
|
|
161
|
+
);
|
|
162
|
+
count.collect(from([1,2,3,4,5])); // Cuenta desde un flujo
|
|
163
|
+
count.collect([1,2,3,4,5]); // Cuenta desde un objeto iterable
|
|
164
|
+
|
|
165
|
+
let find = Collector.shortable(
|
|
166
|
+
() => Optional.empty(), // Valor inicial
|
|
167
|
+
(element, index, accumulator) => accumulator.isPresent(), // Interrumpir
|
|
168
|
+
(accumulator, element, index) => Optional.of(element), // Acumular
|
|
169
|
+
(accumulator) => accumulator // Finalizar
|
|
170
|
+
);
|
|
171
|
+
find.collect(from([1,2,3,4,5])); // Encuentra el primer elemento
|
|
172
|
+
find.collect([1,2,3,4,5]); // Encuentra el primer elemento
|
|
148
173
|
```
|
|
149
174
|
|
|
150
175
|
### Métodos de fábrica de Semantic
|
|
@@ -155,6 +180,7 @@ const total = numbers.toUnoredered().collect(sumCollector); // 15
|
|
|
155
180
|
| `empty<E>()` | Crea flujo vacío | O(1) | O(1) |
|
|
156
181
|
| `fill<E>(element, count)` | Crea flujo lleno | O(n) | O(1) |
|
|
157
182
|
| `from<E>(iterable)` | Crea flujo desde objeto iterable | O(1) | O(1) |
|
|
183
|
+
| `generate<E>(element, interrupt)` | Crea flujo generado | O(1) | O(1) |
|
|
158
184
|
| `interval(period, delay?)` | Crea flujo de intervalo regular | O(1)* | O(1) |
|
|
159
185
|
| `iterate<E>(generator)` | Crea flujo desde generador | O(1) | O(1) |
|
|
160
186
|
| `range(start, end, step)` | Crea flujo de rango numérico | O(n) | O(1) |
|
|
@@ -231,6 +257,7 @@ const result = from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
|
|
231
257
|
.map(n => n * 2) // Multiplica por 2
|
|
232
258
|
.skip(1) // Salta el primero
|
|
233
259
|
.limit(3) // Limita a 3 elementos
|
|
260
|
+
.toUnordered() // Prioridad rendimiento
|
|
234
261
|
.toArray(); // Convierte a array
|
|
235
262
|
// Resultado: [8, 12, 20]
|
|
236
263
|
|
|
@@ -244,45 +271,65 @@ const complexResult = range(1, 100, 1)
|
|
|
244
271
|
.toArray(); // Convierte a array
|
|
245
272
|
```
|
|
246
273
|
|
|
247
|
-
## Métodos de
|
|
274
|
+
## Métodos de conversión semántica
|
|
248
275
|
|
|
249
|
-
| Método | Descripción | Complejidad
|
|
250
|
-
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
| `
|
|
255
|
-
| `
|
|
256
|
-
| `
|
|
276
|
+
| Método | Descripción | Complejidad temporal | Complejidad espacial |
|
|
277
|
+
|------------|------------|------------|------------|
|
|
278
|
+
| `sorted()` | Convertir a colector ordenado | O(n log n) | O(n) |
|
|
279
|
+
| `toUnordered()` | Convertir a colector no ordenado | O(1) | O(1) |
|
|
280
|
+
| `toOrdered()` | Convertir a colector ordenado | O(1) | O(1) |
|
|
281
|
+
| `toNumericStatistics()` | Convertir a estadísticas numéricas | O(n) | O(1) |
|
|
282
|
+
| `toBigintStatistics()` | Convertir a estadísticas bigint | O(n) | O(1) |
|
|
283
|
+
| `toWindow()` | Convertir a colector de ventanas | O(1) | O(1) |
|
|
284
|
+
| `toCollectable()` | Convertir a `UnorderdCollectable` | O(n) | O(1) |
|
|
285
|
+
| `toCollectable(mapper)` | Convertir a collectable personalizado | O(n) | O(1) |
|
|
257
286
|
|
|
258
287
|
```typescript
|
|
259
|
-
//
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
//
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
//
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
.
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
//
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
288
|
+
// Convertir a array ordenado ascendente
|
|
289
|
+
from([6,4,3,5,2]) // Crea un flujo
|
|
290
|
+
.sorted() // Ordena el flujo en orden ascendente
|
|
291
|
+
.toArray(); // [2, 3, 4, 5, 6]
|
|
292
|
+
|
|
293
|
+
// Convertir a array ordenado descendente
|
|
294
|
+
from([6,4,3,5,2]) // Crea un flujo
|
|
295
|
+
.soted((a, b) => b - a) // Ordena el flujo en orden descendente
|
|
296
|
+
.toArray(); // [6, 5, 4, 3, 2]
|
|
297
|
+
|
|
298
|
+
// Redirigir a un array invertido
|
|
299
|
+
from([6,4,3,5,2])
|
|
300
|
+
.redirect((element, index) => -index) // Redirige a orden invertido
|
|
301
|
+
.toOrderd() // Mantiene el orden redirigido
|
|
302
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
303
|
+
|
|
304
|
+
// Ignorar redirecciones para invertir el array
|
|
305
|
+
from([6,4,3,5,2])
|
|
306
|
+
.redirect((element, index) => -index) // Redirige a orden invertido
|
|
307
|
+
.toUnorderd() // Descarta el orden redirigido. Esta operación ignora las operaciones `redirect`, `reverse`, `shuffle` y `translate`
|
|
308
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
309
|
+
|
|
310
|
+
// Invertir el flujo en un array
|
|
311
|
+
from([6, 4, 3, 5, 2])
|
|
312
|
+
.reverse() // Invierte el flujo
|
|
313
|
+
.toOrdered() // Garantiza el orden invertido
|
|
314
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
315
|
+
|
|
316
|
+
// Sobrescribir el flujo barajado en un array
|
|
317
|
+
from([6, 4, 3, 5, 2])
|
|
318
|
+
.shuffle() // Baraja el flujo
|
|
319
|
+
.sorted() // Sobrescribe el orden barajado. Esta operación sobrescribe las operaciones `redirect`, `reverse`, `shuffle` y `translate`
|
|
320
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
321
|
+
|
|
322
|
+
// Convertir a colector de ventanas
|
|
323
|
+
from([6, 4, 3, 5, 2]).toWindow();
|
|
324
|
+
|
|
325
|
+
// Convertir a estadísticas numéricas
|
|
326
|
+
from([6, 4, 3, 5, 2]).toNumericStatistics();
|
|
327
|
+
|
|
328
|
+
// Convertir a estadísticas bigint
|
|
329
|
+
from([6n, 4n, 3n, 5n, 2n]).toBigintStatistics();
|
|
330
|
+
|
|
331
|
+
// Define un colector personalizado para recolectar datos
|
|
332
|
+
let customizedCollector = from([1, 2, 3, 4, 5]).toCollectable((generator: Generator<E>) => new CustomizedCollector(generator));
|
|
286
333
|
```
|
|
287
334
|
|
|
288
335
|
## Métodos de Recolección de Collectable
|
package/readme.fr.md
CHANGED
|
@@ -12,37 +12,43 @@ Contrairement au traitement synchrone traditionnel, Semantic adopte un mode de t
|
|
|
12
12
|
npm install semantic-typescript
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
## Types de
|
|
15
|
+
## Types de base
|
|
16
16
|
|
|
17
17
|
| Type | Description |
|
|
18
18
|
|------|-------------|
|
|
19
|
-
| `Invalid<T>` | Type étendant null ou undefined |
|
|
20
|
-
| `Valid<T>` | Type excluant null et undefined |
|
|
21
|
-
| `MaybeInvalid<T>` | Type pouvant être null ou undefined |
|
|
22
|
-
| `Primitive` |
|
|
23
|
-
| `MaybePrimitive<T>` | Type pouvant être un primitif |
|
|
24
|
-
| `OptionalSymbol` |
|
|
25
|
-
| `SemanticSymbol` |
|
|
26
|
-
| `CollectorsSymbol` |
|
|
27
|
-
| `CollectableSymbol` |
|
|
28
|
-
| `OrderedCollectableSymbol` |
|
|
29
|
-
| `WindowCollectableSymbol` |
|
|
30
|
-
| `StatisticsSymbol` |
|
|
31
|
-
| `NumericStatisticsSymbol` |
|
|
32
|
-
| `BigIntStatisticsSymbol` |
|
|
33
|
-
| `UnorderedCollectableSymbol` |
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
19
|
+
| `Invalid<T>` | Type étendant `null` ou `undefined` |
|
|
20
|
+
| `Valid<T>` | Type excluant `null` et `undefined` |
|
|
21
|
+
| `MaybeInvalid<T>` | Type pouvant être `null` ou `undefined` |
|
|
22
|
+
| `Primitive` | Ensemble des types primitifs |
|
|
23
|
+
| `MaybePrimitive<T>` | Type pouvant être un type primitif |
|
|
24
|
+
| `OptionalSymbol` | Symbole identifiant de la classe `Optional` |
|
|
25
|
+
| `SemanticSymbol` | Symbole identifiant de la classe `Semantic` |
|
|
26
|
+
| `CollectorsSymbol` | Symbole identifiant de la classe `Collector` |
|
|
27
|
+
| `CollectableSymbol` | Symbole identifiant de la classe `Collectable` |
|
|
28
|
+
| `OrderedCollectableSymbol` | Symbole identifiant de la classe `OrderedCollectable` |
|
|
29
|
+
| `WindowCollectableSymbol` | Symbole identifiant de la classe `WindowCollectable` |
|
|
30
|
+
| `StatisticsSymbol` | Symbole identifiant de la classe `Statistics` |
|
|
31
|
+
| `NumericStatisticsSymbol` | Symbole identifiant de la classe `NumericStatistics` |
|
|
32
|
+
| `BigIntStatisticsSymbol` | Symbole identifiant de la classe `BigIntStatistics` |
|
|
33
|
+
| `UnorderedCollectableSymbol` | Symbole identifiant de la classe `UnorderedCollectable` |
|
|
34
|
+
|
|
35
|
+
## Interfaces fonctionnelles
|
|
36
|
+
|
|
37
|
+
| Interface | Description |
|
|
38
|
+
|-----------|-------------|
|
|
39
|
+
| `Runnable` | Fonction sans paramètre ni valeur de retour |
|
|
40
|
+
| `Supplier<R>` | Fonction sans paramètre retournant `R` |
|
|
41
|
+
| `Functional<T, R>` | Fonction de transformation à un seul paramètre |
|
|
38
42
|
| `BiFunctional<T, U, R>` | Fonction de transformation à deux paramètres |
|
|
39
|
-
| `BiPredicate<T, U>` | Fonction de prédicat à deux paramètres |
|
|
40
|
-
| `Comparator<T>` | Fonction de comparaison |
|
|
41
43
|
| `TriFunctional<T, U, V, R>` | Fonction de transformation à trois paramètres |
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
44
|
+
| `Predicate<T>` | Fonction de prédicat à un seul paramètre |
|
|
45
|
+
| `BiPredicate<T, U>` | Fonction de prédicat à deux paramètres |
|
|
46
|
+
| `TriPredicate<T, U, V>` | Fonction de prédicat à trois paramètres |
|
|
47
|
+
| `Consumer<T>` | Fonction de consommation à un seul paramètre |
|
|
48
|
+
| `BiConsumer<T, U>` | Fonction de consommation à deux paramètres |
|
|
49
|
+
| `TriConsumer<T, U, V>` | Fonction de consommation à trois paramètres |
|
|
50
|
+
| `Comparator<T>` | Fonction de comparaison à deux paramètres |
|
|
51
|
+
| `Generator<T>` | Fonction génératrice (noyau et base) |
|
|
46
52
|
|
|
47
53
|
```typescript
|
|
48
54
|
// Exemples d'utilisation des types
|
|
@@ -136,15 +142,34 @@ console.log(emptyOpt.orElse(100)); // Affiche 100
|
|
|
136
142
|
| `Collector.shortable(identity, interruptor, accumulator, finisher)` | Crée un collecteur interruptible | O(1) | O(1) |
|
|
137
143
|
|
|
138
144
|
```typescript
|
|
139
|
-
// Exemples
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
)
|
|
145
|
+
// Exemples de conversion de collecteurs
|
|
146
|
+
const numbers = from([3, 1, 4, 1, 5, 9, 2, 6, 5]);
|
|
147
|
+
|
|
148
|
+
// Priorité à la performance : utiliser un collecteur non ordonné
|
|
149
|
+
const unordered = numbers
|
|
150
|
+
.filter(n => n > 3)
|
|
151
|
+
.toUnoredered();
|
|
152
|
+
|
|
153
|
+
// Besoin de tri : utiliser un collecteur ordonné
|
|
154
|
+
const ordered = numbers.sorted();
|
|
145
155
|
|
|
146
|
-
|
|
147
|
-
|
|
156
|
+
// Compte le nombre d'éléments
|
|
157
|
+
let count = Collector.full(
|
|
158
|
+
() => 0, // Valeur initiale
|
|
159
|
+
(accumulator, element) => accumulator + element, // Accumuler
|
|
160
|
+
(accumulator) => accumulator // Terminer
|
|
161
|
+
);
|
|
162
|
+
count.collect(from([1,2,3,4,5])); // Compte depuis un flux
|
|
163
|
+
count.collect([1,2,3,4,5]); // Compte depuis un objet itérable
|
|
164
|
+
|
|
165
|
+
let find = Collector.shortable(
|
|
166
|
+
() => Optional.empty(), // Valeur initiale
|
|
167
|
+
(element, index, accumulator) => accumulator.isPresent(), // Interrompre
|
|
168
|
+
(accumulator, element, index) => Optional.of(element), // Accumuler
|
|
169
|
+
(accumulator) => accumulator // Terminer
|
|
170
|
+
);
|
|
171
|
+
find.collect(from([1,2,3,4,5])); // Trouve le premier élément
|
|
172
|
+
find.collect([1,2,3,4,5]); // Trouve le premier élément
|
|
148
173
|
```
|
|
149
174
|
|
|
150
175
|
### Méthodes d'usine de Semantic
|
|
@@ -155,6 +180,7 @@ const total = numbers.toUnoredered().collect(sumCollector); // 15
|
|
|
155
180
|
| `empty<E>()` | Crée un flux vide | O(1) | O(1) |
|
|
156
181
|
| `fill<E>(element, count)` | Crée un flux rempli | O(n) | O(1) |
|
|
157
182
|
| `from<E>(iterable)` | Crée un flux depuis un objet itérable | O(1) | O(1) |
|
|
183
|
+
| `generate<E>(element, interrupt)` | Crée un flux générateur | O(1) | O(1) |
|
|
158
184
|
| `interval(period, delay?)` | Crée un flux d'intervalle régulier | O(1)* | O(1) |
|
|
159
185
|
| `iterate<E>(generator)` | Crée un flux depuis un générateur | O(1) | O(1) |
|
|
160
186
|
| `range(start, end, step)` | Crée un flux de plage numérique | O(n) | O(1) |
|
|
@@ -231,6 +257,7 @@ const result = from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
|
|
|
231
257
|
.map(n => n * 2) // Multiplie par 2
|
|
232
258
|
.skip(1) // Saute le premier
|
|
233
259
|
.limit(3) // Limite à 3 éléments
|
|
260
|
+
.toUnordered() // Convertit en collecteur non ordonné
|
|
234
261
|
.toArray(); // Convertit en tableau
|
|
235
262
|
// Résultat: [8, 12, 20]
|
|
236
263
|
|
|
@@ -244,45 +271,65 @@ const complexResult = range(1, 100, 1)
|
|
|
244
271
|
.toArray(); // Convertit en tableau
|
|
245
272
|
```
|
|
246
273
|
|
|
247
|
-
## Méthodes de
|
|
274
|
+
## Méthodes de conversion sémantique
|
|
248
275
|
|
|
249
|
-
| Méthode | Description | Complexité
|
|
250
|
-
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
| `
|
|
255
|
-
| `
|
|
256
|
-
| `
|
|
276
|
+
| Méthode | Description | Complexité temporelle | Complexité spatiale |
|
|
277
|
+
|------------|------------|------------|------------|
|
|
278
|
+
| `sorted()` | Convertir en collecteur ordonné | O(n log n) | O(n) |
|
|
279
|
+
| `toUnordered()` | Convertir en collecteur non ordonné | O(1) | O(1) |
|
|
280
|
+
| `toOrdered()` | Convertir en collecteur ordonné | O(1) | O(1) |
|
|
281
|
+
| `toNumericStatistics()` | Convertir en statistiques numériques | O(n) | O(1) |
|
|
282
|
+
| `toBigintStatistics()` | Convertir en statistiques bigint | O(n) | O(1) |
|
|
283
|
+
| `toWindow()` | Convertir en collecteur de fenêtres | O(1) | O(1) |
|
|
284
|
+
| `toCollectable()` | Convertir en `UnorderdCollectable` | O(n) | O(1) |
|
|
285
|
+
| `toCollectable(mapper)` | Convertir en collectable personnalisé | O(n) | O(1) |
|
|
257
286
|
|
|
258
287
|
```typescript
|
|
259
|
-
//
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
//
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
//
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
.
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
//
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
288
|
+
// Convertir en tableau trié par ordre croissant
|
|
289
|
+
from([6,4,3,5,2]) // Crée un flux
|
|
290
|
+
.sorted() // Trie le flux par ordre croissant
|
|
291
|
+
.toArray(); // [2, 3, 4, 5, 6]
|
|
292
|
+
|
|
293
|
+
// Convertir en tableau trié par ordre décroissant
|
|
294
|
+
from([6,4,3,5,2]) // Crée un flux
|
|
295
|
+
.soted((a, b) => b - a) // Trie le flux par ordre décroissant
|
|
296
|
+
.toArray(); // [6, 5, 4, 3, 2]
|
|
297
|
+
|
|
298
|
+
// Rediriger vers un tableau inversé
|
|
299
|
+
from([6,4,3,5,2])
|
|
300
|
+
.redirect((element, index) => -index) // Redirige en ordre inversé
|
|
301
|
+
.toOrderd() // Conserve l’ordre redirigé
|
|
302
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
303
|
+
|
|
304
|
+
// Ignorer les redirections pour inverser le tableau
|
|
305
|
+
from([6,4,3,5,2])
|
|
306
|
+
.redirect((element, index) => -index) // Redirige en ordre inversé
|
|
307
|
+
.toUnorderd() // Supprime l’ordre redirigé. Cette opération ignore les opérations `redirect`, `reverse`, `shuffle` et `translate`
|
|
308
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
309
|
+
|
|
310
|
+
// Inverser le flux en tableau
|
|
311
|
+
from([6, 4, 3, 5, 2])
|
|
312
|
+
.reverse() // Inverse le flux
|
|
313
|
+
.toOrdered() // Garantit l’ordre inversé
|
|
314
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
315
|
+
|
|
316
|
+
// Écraser le flux mélangé dans un tableau
|
|
317
|
+
from([6, 4, 3, 5, 2])
|
|
318
|
+
.shuffle() // Mélange le flux
|
|
319
|
+
.sorted() // Écrase l’ordre mélangé. Cette opération écrase les opérations `redirect`, `reverse`, `shuffle` et `translate`
|
|
320
|
+
.toArray(); // [2, 5, 3, 4, 6]
|
|
321
|
+
|
|
322
|
+
// Convertir en collecteur de fenêtres
|
|
323
|
+
from([6, 4, 3, 5, 2]).toWindow();
|
|
324
|
+
|
|
325
|
+
// Convertir en statistiques numériques
|
|
326
|
+
from([6, 4, 3, 5, 2]).toNumericStatistics();
|
|
327
|
+
|
|
328
|
+
// Convertir en statistiques bigint
|
|
329
|
+
from([6n, 4n, 3n, 5n, 2n]).toBigintStatistics();
|
|
330
|
+
|
|
331
|
+
// Définit un collecteur personnalisé pour collecter les données
|
|
332
|
+
let customizedCollector = from([1, 2, 3, 4, 5]).toCollectable((generator: Generator<E>) => new CustomizedCollector(generator));
|
|
286
333
|
```
|
|
287
334
|
|
|
288
335
|
## Méthodes de Collecte de Collectable
|