Cadenas de iterables en Dart
where, map y fold se leen de izquierda a derecha; toList las realiza.
void main() {
final wingspansCm = [88.0, 20.5, 210.0, 34.0, 150.0];
// where filters, map transforms; toList realizes the lazy chain.
final large = wingspansCm.where((w) => w > 100).toList();
print('Large birds: $large');
final inMeters = wingspansCm.map((w) => w / 100).toList();
print('In meters: $inMeters');
// fold threads an accumulator through every element.
final total = wingspansCm.fold(0.0, (sum, w) => sum + w);
print('Combined span: $total cm');
print('Any tiny? ${wingspansCm.any((w) => w < 25)}');
}
Cómo funciona
where((w) => w > 100)guarda las envergaduras grandes, perezosamente.maptransforma; la cadena sigue siendoIterablehastatoList.foldenhebra un acumulador;anyresponde sí o no.
Palabras clave y builtins usados aquí
finalvoid
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 517
- Tokens
- 136
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 117 segundos.
Paso 2 de 3 en Colecciones; paso 11 de 27 en Fundamentos del lenguaje.