Junior — Middle
Welke soorten gegevens kunnen dienen als sleutel in een map-container?
sobes.tech AI
Antwoord van AI
In Go kan de sleutel in een map alleen van datatypes zijn die vergelijkbaar (comparable) zijn. Dit betekent dat de operator == voor de sleutel gedefinieerd moet zijn.
Geschikte sleuteltypes:
- Booleaanse waarden (
bool) - Getallen (
int,float64,uint8, enz.) - Strings (
string) - Pointers
- Kanalen
- Interfaces, als het dynamische type vergelijkbaar is
- Structuren waarvan alle velden vergelijkbaar zijn
Niet te gebruiken als sleutel:
- Slices (
slice) - Maps (
map) - Functies
Voorbeeld:
m := make(map[string]int)
m["key"] = 42
// Structuur met vergelijkbare velden
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1,2}] = "Een punt"
Als je probeert een niet-vergelijkbaar type als sleutel te gebruiken, geeft de compiler een fout.