Menu
Coddy logo textTech

Comparando Mapas

Parte da seção Lógica & Fluxo do Journey de GO da Coddy — lição 29 de 68.

Ao contrário de muitos outros tipos de dados em Go, os maps têm uma limitação única: eles não podem ser comparados diretamente usando o operador ==. A única exceção a essa regra é ao comparar um map com nil.

Isso significa que um código como este não compilará:

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

// Isso causará um erro de compilação!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

No entanto, você pode comparar com segurança um mapa com nil:

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

Quando você precisa verificar se dois mapas contêm os mesmos pares chave-valor, você deve escrever uma função personalizada que itera por ambos os mapas e compara cada elemento individualmente. Essa abordagem oferece controle total sobre a lógica de comparação, permitindo que você defina exatamente o que "igual" significa para o seu caso de uso específico.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Folha de consulta

Mapas não podem ser comparados diretamente usando o operador ==, exceto ao comparar com nil:

// Isso NÃO irá compilar
map1 := map[string]int{"a": 1, "b": 2}
map2 := map[string]int{"a": 1, "b": 2}
if map1 == map2 { // Erro de compilação!
    fmt.Println("Maps are equal")
}

Você pode comparar um mapa com nil:

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

Para verificar se dois mapas são iguais, você deve escrever uma função personalizada que itera por ambos os mapas e compara cada elemento individualmente.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo