Mapas en Go: creación, acceso y gestión de datos clave-valor

Clase 14 de 29Curso de Go

Resumen

Los mapas en el lenguaje de programación Go permiten guardar pares clave-valor, facilitando la identificación y recuperación de información específica. Conocer su funcionamiento y características potencia considerablemente las aplicaciones en Go, ofreciendo una solución eficiente similar a los diccionarios en Python o Java.

¿Qué son los mapas en Go y cómo se crean?

En Go, un mapa es equivalente a un diccionario, donde cada elemento tiene una llave única asociada con un valor específico. La creación se realiza mediante la función make, indicando claramente tipo de llave y valor:

mapa := make(map[string]int)

Después de declarar el mapa de esta forma, se añaden elementos especificando llave y valor directamente:

mapa["Amin"] = 4
mapa["Espinoza"] = 8

Cada valor puede recuperarse fácilmente utilizando su clave.

¿Cómo acceder y obtener valores en un mapa?

La recuperación de los valores almacenados en los mapas se realiza indicando simplemente la llave:

version_uno := mapa["Espinoza"]
fmt.Println(version_uno)
// Salida: 8

Siguiendo el mismo procedimiento, se recuperan otros valores de interés fácilmente mediante diferentes llaves.

¿Cómo verificar la existencia de valores?

Go permite confirmar que un valor existe al utilizar la sintaxis especial que incluye un underscore:

_, dato := mapa["Amin"]
fmt.Println(dato)
// Salida: true

La existencia de este valor se confirma con el booleano dato, independientemente de la recuperación del propio contenido.

¿Cuál es la diferencia entre eliminar y limpiar un mapa?

Hay dos funciones importantes al gestionar datos dentro de mapas:

  • Eliminar un elemento específico: Mediante la función delete:
delete(mapa, "Amin")
  • Limpiar todos los elementos: Con la función clear:
clear(mapa)

La primera elimina una única clave con su valor asociado; la segunda limpia todos los elementos.

¿Cómo comparar mapas para verificar igualdad?

La comparación de mapas se realiza mediante el método maps.Equal, disponible al importar el paquete maps:

import "maps"

nuevoMapaUno := map[string]int{"Miranda": 7, "Espinoza": 8}
nuevoMapaDos := map[string]int{"Miranda": 7, "Espinoza": 8}

if maps.Equal(nuevoMapaUno, nuevoMapaDos) {
    fmt.Println("Los mapas son iguales")
}

Este procedimiento simplifica considerablemente la verificación de coincidencia entre diferentes conjuntos de datos clave-valor.

¿Te resulta fácil manejar mapas en Go después de conocer estos detalles prácticos? Comparte tus dudas o experiencias sobre su uso.