Sobes.tech
Junior — Middle

Quali tipi di dati sono ammessi come chiavi per la struttura mappa?

sobes.tech AI

Risposta dell'AI

In Go, le chiavi di una mappa possono essere solo tipi di dati che supportano l'operazione di confronto (paragonabili). Ciò significa che le chiavi possono essere:

  • Valori booleani (bool)
  • Numeri (int, float, complex, ecc.)
  • Stringhe (string)
  • Puntatori
  • Interfacce, se il tipo dinamico supporta il confronto
  • Strutture, se tutti i loro campi sono confrontabili

Non è possibile usare slice, mappe, funzioni o altri tipi non confrontabili come chiavi, poiché non supportano l'operatore ==.

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"