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.
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.
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.
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.
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
.
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.
Para más detalles sobre collection if
y collection for
en Dart, consulta la documentación oficial de Dart.
Jorge García
Fullstack developer