Sobes.tech
Junior — Middle

Jaké typy dat mohou sloužit jako klíč v kontejneru map?

sobes.tech AI

Odpověď od AI

V Go může být klíčem v mapě pouze datový typ, který je srovnatelný (comparable). To znamená, že pro klíč musí být definován operátor ==.

Vhodné typy klíčů:

  • Logické hodnoty (bool)
  • Čísla (int, float64, uint8 atd.)
  • Řetězce (string)
  • Ukazatele
  • Kanály
  • Rozhraní, pokud je dynamický typ srovnatelný
  • Struktury, pokud jsou všechny pole srovnatelná

Nelze použít jako klíč:

  • Řezové pole (slice)
  • Mapy (map)
  • Funkce

Příklad:

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

// Struktura se srovnatelnými poli
type Point struct {
    X, Y int
}

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

Pokud se pokusíte použít nesrovnatelný typ jako klíč, kompilátor vypíše chybu.