Sobes.tech
Junior — Middle

Aké typy údajov sú povolené ako kľúče pre štruktúru map?

sobes.tech AI

Odpoveď od AI

V jazyku Go môžu byť kľúče pre mapu iba tie dátové typy, ktoré podporujú operáciu porovnávania (porovnateľné). To znamená, že kľúče môžu byť:

  • Logické hodnoty (bool)
  • Čísla (int, float, complex atď.)
  • Reťazce (string)
  • Ukazovatele
  • Rozhrania, ak dynamický typ podporuje porovnanie
  • Štruktúry, ak sú všetky ich polia porovnateľné

Nedajú sa použiť ako kľúče rezy, mapy, funkcie a iné nedohľadateľné typy, pretože nepodporujú operátor ==.

Príklad:

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

// Štruktúra s porovnateľnými poľami
type Point struct {
    X, Y int
}

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