Junior — Middle
Quali tipi di dati possono fungere da chiave in un contenitore map?
sobes.tech AI
Risposta dell'AI
In Go, la chiave in una mappa può essere solo di tipi di dati confrontabili (comparable). Ciò significa che deve essere definito l'operatore == per la chiave.
Tipi di chiavi appropriati:
- Valori booleani (
bool) - Numeri (
int,float64,uint8, ecc.) - Stringhe (
string) - Puntatori
- Canali
- Interfacce, se il tipo dinamico è confrontabile
- Strutture, se tutti i campi sono confrontabili
Non è possibile usare come chiave:
- Slice (
slice) - Mappe (
map) - Funzioni
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 un tipo non confrontabile come chiave, il compilatore genererà un errore.