Junior — Middle
Milyen adattípusok megengedettek a map szerkezet kulcsaként?
sobes.tech MI
Válasz az MI-től
Go-ban a térképek kulcsai csak olyan adattípusok lehetnek, amelyek támogatják az összehasonlítási műveletet (összehasonlíthatóak). Ez azt jelenti, hogy a kulcsok lehetnek:
- Logikai értékek (bool)
- Számok (int, float, complex stb.)
- Sztringek (string)
- Mutatók
- Interfészek, ha a dinamikus típus támogatja az összehasonlítást
- Struktúrák, ha minden mezőjük összehasonlítható
Nem használhatók szeletek, térképek, függvények és más összehasonlíthatatlan típusok kulcsként, mivel nem támogatják az == operátort.
Példa:
m := make(map[string]int)
m["key"] = 42
// Összehasonlítható mezőkkel rendelkező struktúra
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1,2}] = "Egy pont"