Middle
Jaké datové typy lze použít jako klíče?
sobes.tech AI
Odpověď od AI
V jazyce Go mohou být klíče v mapě pouze typy, které podporují operaci porovnání (==). To je způsobeno tím, že pro hledání klíče v hashovací tabulce je nutné porovnávat klíče na rovnost.
Typy, které lze použít jako klíče:
- Primitivní typy:
int,float64,string,boolatd. - Ukazatele
- Struktury, pokud jsou všechny jejich pole porovnatelné
- Pole, pokud jsou prvky porovnatelné
Typy, které nelze použít jako klíče:
- Řezové (
slice) - Mapy (
map) - Funkce
To je způsobeno tím, že tyto typy nepodporují porovnání pomocí ==.
Příklad:
m := make(map[string]int)
m["key"] = 42
// Struktura s porovnatelnými poli
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Bod"
Pokud se pokusíte použít řez nebo mapu jako klíč, kompilátor vypíše chybu.