Junior — Middle
Milyen adatfajták lehetnek kulcs egy map tárolóban?
sobes.tech MI
Válasz az MI-től
Go-ban a térkép kulcsa csak összehasonlítható (comparable) adattípus lehet. Ez azt jelenti, hogy a kulcs számára az == operátornak definiáltnak kell lennie.
Megfelelő kulcstípusok:
- Logikai értékek (
bool) - Számok (
int,float64,uint8stb.) - Sztringek (
string) - Mutatók
- Csatornák
- Interfészek, ha a dinamikus típus összehasonlítható
- Struktúrák, ha minden mező összehasonlítható
Nem használható kulcsként:
- Szeletek (
slice) - Térképek (
map) - Függvények
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"
Ha össze nem hasonlítható típusú értéket próbálsz kulcsként használni, a fordító hibát ad.