En Dart, un Iterable es una colección de elementos que se puede recorrer de manera secuencial. Permite trabajar con datos de forma eficiente utilizando la programación funcional. Los iterators son objetos que permiten recorrer los elementos de un iterable, facilitando la manipulación y transformación de datos.
Los iterables en Dart son herramientas poderosas para manipular colecciones de datos. Con métodos como where(), map(), y reduce(), se puede transformar y combinar datos de manera concisa y eficiente, facilitando la escritura de código limpio y legible.
IterableUn Iterable es una colección que proporciona un método iterator, que devuelve un objeto Iterator para recorrer sus elementos.
var numeros = [1, 2, 3, 4, 5];
Iterable<int> iterableNumeros = numeros;
for (var numero in iterableNumeros) {
print(numero);
// Imprime los números del 1 al 5
} IteratorUn Iterator es un objeto que permite acceder a los elementos de un iterable uno a uno, utilizando los métodos moveNext() y current.
var iterator = numeros.iterator;
while (iterator.moveNext()) {
print(iterator.current);
// Imprime los números del 1 al 5
} Método where()El método where() filtra los elementos de un iterable basado en una condición específica, devolviendo un nuevo iterable que contiene solo los elementos que cumplen con la condición.
var numerosPares = numeros.where((numero) => numero.isEven);
print(numerosPares.toList());
// Resultado: [2, 4] Método map()El método map() aplica una función a cada elemento de un iterable y devuelve un nuevo iterable con los resultados.
var cuadrados = numeros.map((numero) => numero * numero);
print(cuadrados.toList());
// Resultado: [1, 4, 9, 16, 25] Método reduce()El método reduce() aplica una función acumulativa a los elementos de un iterable, reduciéndolos a un solo valor. Es útil para sumar, multiplicar o combinar elementos.
var sumaTotal = numeros.reduce((acumulador, numero) => acumulador + numero);
print(sumaTotal);
// Resultado: 15