Menu
Coddy logo textTech

Comparación de Maps

Parte de la sección Lógica y Flujo del Journey de GO de Coddy — lección 29 de 68.

A diferencia de muchos otros tipos de datos en Go, los maps tienen una limitación única: no se pueden comparar directamente usando el operador ==. La única excepción a esta regla es cuando se compara un map con nil.

Esto significa que un código como este no compilará:

map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}

// ¡Esto causará un error de compilación!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

Sin embargo, puedes comparar de forma segura un mapa con nil:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

Cuando necesites comprobar si dos mapas contienen los mismos pares clave-valor, debes escribir una función personalizada que itere a través de ambos mapas y compare cada elemento individualmente. Este enfoque te otorga un control total sobre la lógica de comparación, permitiéndote definir exactamente qué significa "igual" para tu caso de uso específico.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Hoja de referencia

Los mapas no se pueden comparar directamente usando el operador ==, excepto cuando se comparan con nil:

// Esto NO compilará
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
if map1 == map2 { // ¡Error de compilación!
    fmt.Println("Maps are equal")
}

Puedes comparar un mapa con nil:

var myMap map[string]int
if myMap == nil {
    fmt.Println("Map is nil")
}

Para comprobar si dos mapas son iguales, debes escribir una función personalizada que itere a través de ambos mapas y compare cada elemento individualmente.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo