Menu
CoddyTech

Confrontare le mappe

Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 29 di 68.

A differenza di molti altri tipi di dati in Go, le mappe hanno una limitazione particolare: non possono essere confrontate direttamente usando l'operatore ==. L'unica eccezione a questa regola è quando si confronta una mappa con nil.

Questo significa che codice come questo non verrà compilato:

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

// Questo causerà un errore di compilazione!
if map1 == map2 {
    fmt.Println("Maps are equal")
}

Tuttavia, puoi confrontare tranquillamente una mappa con nil:

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

Quando devi verificare se due mappe contengono le stesse coppie chiave-valore, devi scrivere una funzione personalizzata che scorra entrambe le mappe e confronti ogni elemento singolarmente. Questo approccio ti offre il pieno controllo sulla logica di confronto e ti permette di definire esattamente cosa significa «uguale» nel tuo caso specifico.

Provalo tu

Questa lezione non include una sfida di codice.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Go online