Senior
Milyen adattípusokat lehet használni térkép kulcsaként? Használható-e tömb kulcsként?
sobes.tech MI
Válasz az MI-től
Go-ban a térkép kulcsa lehet bármilyen típus, amely támogatja az == és != összehasonlító műveleteket. Ez azt jelenti, hogy a kulcsok lehetnek alapvető típusok (int, string, bool stb.), mutatók, szerkezetek, ha minden mezőjük összehasonlítható, valamint interfészek, ha a dinamikus típus összehasonlítható.
A Go-ban a tömbök összehasonlíthatók, ha elemeik összehasonlíthatók, ezért a tömbök használhatók kulcsként a térképen. Például:
m := make(map[[3]int]string)
m[[3]int{1, 2, 3}] = "érték"
Azonban a szeleteket (slice) nem lehet kulcsként használni, mivel nem összehasonlíthatók (kivéve, ha nil-lel összehasonlítjuk őket).