0%
Programación funcional sobre colecciones — Capítulo 14

Capítulo 14 — Programación funcional sobre colecciones

Parte 1A — Aprender Dart · Capítulo 14 de 62 · 6 h

Capítulo 14 — Programación funcional sobre colecciones

Nivel: intermedio Duración estimada: 6 h Requisitos previos: capítulo 05 (bucles), capítulo 06 (colecciones), capítulo 07 (funciones), capítulo 13 (excepciones) Lo que sabrás hacer al terminar: transformar, filtrar, ordenar y resumir cualquier lista de jugadores, enemigos u objetos de inventario en unas pocas líneas declarativas, sin escribir un solo bucle for.


14.0 — Objetivos del capítulo

Al terminar este capítulo, serás capaz de:

  • distinguir el estilo imperativo (cómo hacerlo) del estilo declarativo (qué obtener);
  • escribir una función anónima y una función flecha para pasarlas a un método;
  • recorrer una colección con forEach();
  • transformar una colección con map(), incluso cambiando de tipo;
  • explicar qué es un Iterable y por qué toList() suele ser obligatorio;
  • filtrar una colección con where();
  • buscar un elemento con firstWhere(), lastWhere(), singleWhere() e indexWhere();
  • responder a una pregunta de sí o no con any(), every() y contains();
  • reducir una colección a un único valor con reduce() y fold();
  • elegir entre reduce() y fold() con conocimiento de causa;
  • ordenar una lista con sort() y escribir un comparador;
  • utilizar compareTo() con números y con textos;
  • ordenar objetos por puntuación, por nombre y después por varios criterios;
  • ordenar una copia sin modificar la lista original;
  • dividir una colección con take() y skip();
  • aplanar listas anidadas con expand();
  • eliminar duplicados con toSet();
  • unir una colección en un texto con join();
  • usar el operador spread ... y su versión nullable ...?;
  • escribir un if y un for directamente dentro de un literal de lista;
  • encadenar varias operaciones en una sola expresión legible;
  • decidir, con criterios claros, cuándo conviene volver a un bucle for.

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!