Sobes.tech
Junior — Middle

Milyen adattípusok megengedettek a map szerkezet kulcsaként?

sobes.tech MI

Válasz az MI-től

Go-ban a térképek kulcsai csak olyan adattípusok lehetnek, amelyek támogatják az összehasonlítási műveletet (összehasonlíthatóak). Ez azt jelenti, hogy a kulcsok lehetnek:

  • Logikai értékek (bool)
  • Számok (int, float, complex stb.)
  • Sztringek (string)
  • Mutatók
  • Interfészek, ha a dinamikus típus támogatja az összehasonlítást
  • Struktúrák, ha minden mezőjük összehasonlítható

Nem használhatók szeletek, térképek, függvények és más összehasonlíthatatlan típusok kulcsként, mivel nem támogatják az == operátort.

Példa:

m := make(map[string]int)
m["key"] = 42

// Összehasonlítható mezőkkel rendelkező struktúra
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Egy pont"