En Dart, los iterables son una colección de elementos que se pueden recorrer uno por uno. Los iterables son fundamentales para trabajar con colecciones de datos, ya que proporcionan una manera eficiente de acceder y manipular elementos de una colección.
Conceptos Clave
- Iterable: Es una colección que puede ser recorrida. En Dart,
Iterable
es una clase abstracta que proporciona una interfaz para iterar sobre una colección. - Iterator: Es un objeto que permite recorrer los elementos de un iterable. La clase
Iterator
tiene dos métodos principales:moveNext()
: Mueve el iterador al siguiente elemento de la colección.current
: Devuelve el elemento actual del iterador.
Ejemplo Básico de Iterable
A continuación, se muestra un ejemplo básico de cómo usar un iterable en Dart:
void main() { List<int> numbers = [1, 2, 3, 4, 5]; // Usando un bucle for-in para iterar sobre la lista for (int number in numbers) { print(number); } }
Explicación del Código
- List
numbers = [1, 2, 3, 4, 5]; : Creamos una lista de enteros. - for (int number in numbers): Utilizamos un bucle
for-in
para iterar sobre cada elemento de la lista. - print(number);: Imprimimos cada número en la consola.
Métodos Comunes de Iterable
Dart proporciona varios métodos útiles para trabajar con iterables. Aquí hay algunos de los más comunes:
Método | Descripción |
---|---|
forEach |
Ejecuta una función para cada elemento del iterable. |
map |
Aplica una función a cada elemento y devuelve un nuevo iterable con los resultados. |
where |
Filtra los elementos que cumplen con una condición específica. |
reduce |
Combina todos los elementos en un solo valor usando una función acumuladora. |
toList |
Convierte el iterable en una lista. |
toSet |
Convierte el iterable en un conjunto. |
Ejemplo de Uso de Métodos Comunes
void main() { List<int> numbers = [1, 2, 3, 4, 5]; // forEach numbers.forEach((number) => print(number)); // map Iterable<int> squaredNumbers = numbers.map((number) => number * number); print(squaredNumbers.toList()); // where Iterable<int> evenNumbers = numbers.where((number) => number.isEven); print(evenNumbers.toList()); // reduce int sum = numbers.reduce((a, b) => a + b); print(sum); }
Explicación del Código
- forEach: Imprime cada número en la lista.
- map: Crea un nuevo iterable con los números al cuadrado y lo convierte en una lista.
- where: Filtra los números pares y los convierte en una lista.
- reduce: Suma todos los números de la lista.
Ejercicio Práctico
Ejercicio 1: Filtrar y Transformar una Lista
Dada una lista de números, filtra los números impares y luego multiplica cada número impar por 2. Imprime el resultado.
Solución
void main() { List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; Iterable<int> oddNumbers = numbers.where((number) => number.isOdd); Iterable<int> transformedNumbers = oddNumbers.map((number) => number * 2); print(transformedNumbers.toList()); }
Explicación de la Solución
- where: Filtra los números impares.
- map: Multiplica cada número impar por 2.
- toList: Convierte el iterable resultante en una lista y la imprime.
Conclusión
En esta sección, hemos aprendido sobre los iterables en Dart, cómo utilizarlos y algunos de los métodos más comunes que podemos aplicar a los iterables. Los iterables son una herramienta poderosa para trabajar con colecciones de datos y proporcionan una manera flexible y eficiente de manipular y acceder a los elementos de una colección.
En el próximo módulo, profundizaremos en la Programación Orientada a Objetos en Dart, donde aprenderemos sobre clases, objetos, herencia y más.
Curso de Programación en Dart
Módulo 1: Introducción a Dart
- Introducción a Dart
- Configuración del Entorno de Desarrollo
- Tu Primer Programa en Dart
- Sintaxis y Estructura Básica