Sobes.tech
Junior — Middle

Milyen adattípusok alkalmasak kulcsként egy Map-struktúrában?

sobes.tech MI

Válasz az MI-től

Go-ban a map szerkezet kulcsai csak olyan típusok lehetnek, amelyek támogatják az egyenlőség (== és !=) összehasonlítási műveletet. Ez azért fontos, mert a kulcs alapján történő értékkereséshez össze kell hasonlítani a kulcsokat.

Megfelelő kulcstípusok:

  • Egyszerű típusok: int, float64, string, bool stb.
  • Mutatók
  • Struktúrák, ha minden mezőjük összehasonlítható
  • Tömbök, ha az elemeik összehasonlíthatók

Nem használhatók kulcsként:

  • Szeletek (slice)
  • Térképek (map)
  • Függvények

Használati példa:

m := make(map[string]int)
m["apple"] = 5
m["banana"] = 3

fmt.Println(m["apple"]) // 5

Ha megpróbálsz egy szeletet kulcsként használni, a fordító hibát fog jelezni.