Middle
Quali tipi di dati possono essere usati come chiavi?
sobes.tech AI
Risposta dell'AI
In Go, le chiavi in una mappa possono essere solo di tipi che supportano l'operazione di confronto (==). Questo perché, per cercare una chiave in una tabella hash, è necessario confrontare le chiavi per uguaglianza.
Tipi che possono essere usati come chiavi:
- Tipi primitivi:
int,float64,string,bool, ecc. - Puntatori
- Strutture, se tutti i loro campi sono confrontabili
- Array, se gli elementi sono confrontabili
Tipi che non possono essere usati come chiavi:
- Slice (
slice) - Mappe (
map) - Funzioni
Questo perché questi tipi non supportano il confronto con ==.
Esempio:
m := make(map[string]int)
m["key"] = 42
// Struttura con campi confrontabili
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Un punto"
Se si tenta di usare uno slice o una mappa come chiave, il compilatore genererà un errore.