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

Cómo usar collection if y collection for en Dart

En Dart, collection if y collection for son características avanzadas que permiten crear y manipular colecciones (como listas y mapas) de manera concisa y dinámica. Estas herramientas se utilizan para aplicar condiciones y bucles dentro de colecciones, haciendo el código más claro y expresivo.

¿Qué es collection if en Dart?

La expresión collection if permite agregar elementos a una colección condicionalmente. Esto es útil cuando se requiere incluir elementos en una lista solo si se cumple una determinada condición, reduciendo el uso de estructuras if externas y mejorando la legibilidad.

Ejemplo de collection if

En este ejemplo, una lista contiene números pares condicionalmente:

void main() {
  bool incluirNumero = true;
  var numeros = [
    1,
    2,
    if (incluirNumero) 4,
    5
  ];

  print(numeros); // Salida: [1, 2, 4, 5] si incluirNumero es true
}

Si incluirNumero es true, el número 4 se añade a la lista; si es false, se omite.

¿Qué es collection for en Dart?

La expresión collection for permite iterar sobre otra colección dentro de una nueva, generando elementos de manera dinámica. Esta función es especialmente útil para transformar y copiar colecciones en una sola línea de código.

Ejemplo de collection for

En este ejemplo, duplicamos los valores de una lista original y los añadimos a una nueva lista:

void main() {
  var numerosOriginal = [1, 2, 3];
  var numerosDuplicados = [
    for (var numero in numerosOriginal) numero * 2
  ];

  print(numerosDuplicados); // Salida: [2, 4, 6]
}

Este fragmento crea una lista numerosDuplicados que contiene el doble de cada valor en numerosOriginal.

Uso combinado de collection if y collection for

Dart permite combinar collection if y collection for para crear colecciones dinámicas y complejas. A continuación, se muestra cómo se pueden usar ambas características en una sola colección.

void main() {
  var numerosOriginal = [1, 2, 3, 4, 5];
  bool incluirPares = true;

  var numerosFiltrados = [
    for (var numero in numerosOriginal)
      if (incluirPares && numero % 2 == 0) numero
  ];

  print(numerosFiltrados); // Salida: [2, 4] si incluirPares es true
}

En este ejemplo, se añaden solo los números pares a numerosFiltrados si incluirPares es verdadero.

Referencias

Para más detalles sobre collection if y collection for en Dart, consulta la documentación oficial de Dart.

Etiquetas:
dart
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer