Sobes.tech
Senior

Quali tipi di dati possono essere usati come chiave per una mappa? È possibile usare un array come chiave?

sobes.tech AI

Risposta dell'AI

In Go, la chiave per una mappa può essere qualsiasi tipo che supporta l'operazione di confronto == e !=. Ciò significa che le chiavi possono essere tipi di base (int, string, bool, ecc.), puntatori, strutture se tutti i loro campi sono confrontabili, e anche interfacce se il tipo dinamico è confrontabile.

Gli array in Go sono confrontabili se i loro elementi sono confrontabili, quindi gli array possono essere usati come chiavi in una mappa. Ad esempio:

m := make(map[[3]int]string)
 m[[3]int{1, 2, 3}] = "valore"

Tuttavia, gli slice non possono essere usati come chiavi, poiché non sono confrontabili (eccetto quando vengono confrontati con nil).