Volver a la página principal
jueves 31 octubre 2024
5

Cómo usar List Comprehension en Dart

En Dart, List Comprehension es una forma de crear y manipular listas de manera concisa y declarativa. Esto permite aplicar filtros, transformaciones y construir listas derivadas de otras listas, mejorando la legibilidad y eficiencia del código.

¿Qué es List Comprehension en Dart?

Dart no tiene una sintaxis de List Comprehension tan directa como en Python, pero permite construir listas de forma similar usando expresiones combinadas con ciclos for y condiciones if dentro de listas. Esto se logra mediante spread operators (...), null-aware spread operators (...?), y condiciones if y bucles for en la declaración de una lista.

Ejemplos de List Comprehension en Dart

Crear listas con bucles for

Se puede usar el bucle for directamente en una lista para construir una nueva lista basada en una existente:

void main() {
  var numeros = [1, 2, 3, 4, 5];
  
  // Crear una nueva lista multiplicando cada elemento por 2
  var numerosDuplicados = [for (var numero in numeros) numero * 2];
  
  print(numerosDuplicados); // Output: [2, 4, 6, 8, 10]
}

En este ejemplo, la lista numerosDuplicados se crea usando una comprensión de listas que multiplica cada número de numeros por 2.

Crear listas con condiciones if

Dart también permite agregar condiciones if dentro de las listas, para incluir solo los elementos que cumplan ciertos criterios:

void main() {
  var numeros = [1, 2, 3, 4, 5];

  // Crear una lista con solo los números pares
  var numerosPares = [for (var numero in numeros) if (numero % 2 == 0) numero];
  
  print(numerosPares); // Output: [2, 4]
}

En este caso, solo los números pares de numeros se agregan a la lista numerosPares.

Usar Spread Operator para combinar listas

El operador de expansión ... permite combinar varias listas en una sola, y el operador ...? incluye una lista solo si no es null.

void main() {
  var listaA = [1, 2, 3];
  var listaB = [4, 5];
  var listaC;

  var listaCombinada = [...listaA, ...listaB, if (listaC != null) ...?listaC];
  
  print(listaCombinada); // Output: [1, 2, 3, 4, 5]
}

Aquí, listaA y listaB se combinan en listaCombinada, y ...?listaC se agrega solo si listaC no es null.

Ventajas de List Comprehension en Dart

1. Código más limpio y conciso: Facilita la construcción de listas complejas de manera declarativa.

2. Mejora la eficiencia: Evita ciclos adicionales y estructuras condicionales externas.

3. Mejor legibilidad: Hace que la intención del código sea más clara, especialmente al realizar transformaciones y filtrados de listas.

Para más detalles, consulta la documentación oficial de Dart.

Etiquetas:
dart
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer