Sobes.tech
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.