Sobes.tech
Junior — Middle

Aké typy údajov môžu slúžiť ako kľúč v kontajneri map?

sobes.tech AI

Odpoveď od AI

V Go môže byť kľúčom v mape iba dátový typ, ktorý je porovnateľný (comparable). To znamená, že pre kľúč musí byť definovaný operátor ==.

Vhodné typy kľúčov:

  • Logické hodnoty (bool)
  • Čísla (int, float64, uint8 atď.)
  • Reťazce (string)
  • Ukazovatele
  • Kanály
  • Rozhrania, ak je dynamický typ porovnateľný
  • Štruktúry, ak sú všetky polia porovnateľné

Nie je možné použiť ako kľúč:

  • Rezové pole (slice)
  • Mapy (map)
  • Funkcie

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"

Ak sa pokúsite použiť neporovnateľný typ ako kľúč, kompilátor vypíše chybu.