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

Cómo usar Map literals en Dart

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.

¿Qué son los Map literals en Dart?

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.

Sintaxis básica de Map literals

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'.

Ejemplos de uso de Map literals en Dart

Creación básica de un Map literal

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.

Definir Map con tipos específicos

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.

Agregar y eliminar elementos en un Map literal

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.

Iterar sobre un Map literal

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.

Uso de Maps anidados

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.

Ventajas de usar Map literals

  • Simplicidad: Facilita la creación de mapas con una sintaxis concisa.
  • Flexibilidad: Permite definir tipos específicos para claves y valores.
  • Legibilidad: Hace que el código sea más claro y fácil de entender, especialmente al trabajar con grandes cantidades de datos organizados.

Referencia oficial

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

Etiquetas:
dart
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer