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,uint8atď.) - 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.