En Dart, los Map literals permiten crear mapas de manera sencilla y concisa mediante una sintaxis literal. Los mapas son estructuras de datos que almacenan pares clave-valor, donde cada clave es única y se asocia a un valor específico. Los Map literals simplifican la creación de estos pares clave-valor, haciéndolos más legibles y fáciles de manejar en el código.
Un Map literal es una forma directa de declarar un mapa utilizando {}
. Dentro de las llaves, los pares clave-valor se separan por comas y cada par se define usando el formato clave: valor
. En Dart, las claves pueden ser de cualquier tipo, aunque comúnmente se utilizan String
o int
.
Para definir un Map literal, utiliza {}
y especifica los pares clave-valor de la siguiente manera:
var persona = {
'nombre': 'Juan',
'edad': 30,
'ciudad': 'Madrid'
};
En este ejemplo, persona
es un mapa con tres pares clave-valor. Las claves son nombre
, edad
, y ciudad
, mientras que los valores son 'Juan'
, 30
, y 'Madrid'
.
Puedes crear un mapa con claves y valores de cualquier tipo compatible, y acceder a ellos usando las claves.
void main() {
var usuario = {
'id': 1,
'nombre': 'Carlos',
'activo': true
};
print(usuario['nombre']); // Imprime: Carlos
print(usuario['activo']); // Imprime: true
}
En este caso, se crea el mapa usuario
y se accede a los valores mediante sus claves.
Puedes especificar los tipos de claves y valores de un mapa utilizando la sintaxis <tipoClave, tipoValor>
.
void main() {
Map<String, int> puntuaciones = {
'Alice': 90,
'Bob': 85,
'Carlos': 88
};
print(puntuaciones); // Imprime: {Alice: 90, Bob: 85, Carlos: 88}
}
En este ejemplo, puntuaciones
es un mapa que contiene claves de tipo String
y valores de tipo int
.
Aunque el Map literal es inmutable en el momento de su declaración, puedes agregar o eliminar elementos después de su creación.
void main() {
var paises = {
'ES': 'España',
'FR': 'Francia'
};
paises['IT'] = 'Italia'; // Agregar un nuevo par clave-valor
paises.remove('FR'); // Eliminar un par clave-valor existente
print(paises); // Imprime: {ES: España, IT: Italia}
}
En este ejemplo, se agrega IT: Italia
y se elimina FR: Francia
del mapa paises
.
Puedes recorrer un mapa utilizando forEach
o un bucle for-in
para acceder a las claves y valores.
void main() {
var frutas = {
'manzana': 2,
'naranja': 5,
'plátano': 3
};
frutas.forEach((clave, valor) {
print('Fruta: $clave, Cantidad: $valor');
});
}
En este ejemplo, forEach
recorre cada par clave-valor en el mapa frutas
.
Puedes tener mapas dentro de otros mapas para organizar mejor los datos complejos.
void main() {
var ciudades = {
'España': {
'Madrid': 'Capital',
'Barcelona': 'Ciudad'
},
'Francia': {
'París': 'Capital',
'Lyon': 'Ciudad'
}
};
print(ciudades['España']?['Madrid']); // Imprime: Capital
}
Este ejemplo muestra un mapa anidado donde cada país tiene otro mapa que representa sus ciudades.
Para obtener más detalles, consulta la documentación oficial de Dart sobre Maps.
Jorge García
Fullstack developer