Sobes.tech
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).