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 è il confronto di una mappa con nil.
Ciò 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 in sicurezza 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 iteri su entrambe le mappe e confronti ogni elemento individualmente. Questo approccio ti dà il pieno controllo sulla logica di confronto, permettendoti di definire esattamente cosa significa «uguale» per il tuo caso d’uso specifico.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Flusso di controllo avanzato
Switch con `fallthrough`Uscire dai cicli annidatiContinuare un ciclo specificoL'istruzione `goto`Riepilogo - Controllo avanzato dei cicli4Progetto: semplice lista di attività
Configurazione del progettoAggiungere un’attività2Struct e metodi
Definire metodi sugli structReceiver per valoreReceiver con puntatoreScegliere i receiverMetodi vs funzioniRiepilogo - comportamento degli struct5Mappe in dettaglio
Mappe di structPuntatori come valori delle mappeVerificare le mappe nilConfrontare le mappeRiepilogo - Contatore della frequenza delle parole3Interfacce (le basi)
Che cos’è un’interfaccia?Definire un’interfacciaImplementare un’interfacciaUsare i tipi interfacciaInterfaccia vuotaAsserzioni di tipoSwitch di tipoRiepilogo: forme e comportamentiEsercitati da solo: Compilatore Go online