Middle
Aké typy údajov je možné použiť ako kľúče?
sobes.tech AI
Odpoveď od AI
V jazyku Go môžu byť kľúče v mape iba typy, ktoré podporujú operáciu porovnania (==). To je spôsobené tým, že na vyhľadanie kľúča v hashovacej tabuľke je potrebné porovnať kľúče na rovnosť.
Typy, ktoré môžu byť použité ako kľúče:
- Primitívne typy:
int,float64,string,boolatď. - Ukazovatele
- Štruktúry, ak sú všetky ich polia porovnateľné
- Pole, ak sú prvky porovnateľné
Typy, ktoré nie je možné použiť ako kľúče:
- Slicing (
slice) - Mapy (
map) - Funkcie
Toto je spôsobené tým, že tieto typy nepodporujú porovnanie pomocou ==.
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ť rez alebo mapu ako kľúč, kompilátor vypíše chybu.