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,uint8atd.) - Ř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.