Sobes.tech
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, uint8 stb.)
  • 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.