typestar

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

  1. where((w) => w > 100) guarda las envergaduras grandes, perezosamente.
  2. map transforma; la cadena sigue siendo Iterable hasta toList.
  3. fold enhebra un acumulador; any responde sí o no.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Colecciones; paso 11 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →