Sobes.tech
Junior — Middle

Koje vrste podataka mogu služiti kao ključ u map kontejneru?

sobes.tech АИ

Одговор од АИ

У Go, ključ u mapi može biti samo od tipova podataka koji su poredivi (comparable). To znači da za ključ mora biti definisan operator ==.

Prikladni tipovi ključeva:

  • Bilo koje vrednosti tipa bool
  • Brojevi (int, float64, uint8 itd.)
  • Nizovi (string)
  • Pokazivači
  • Kanali
  • Interfejsi, ako je dinamički tip porediv
  • Strukture, ako su svi njihovi atributi poredivi

Nije dozvoljeno koristiti kao ključ:

  • Slojeve (slice)
  • Mape (map)
  • Funkcije

Primer:

m := make(map[string]int)
m["key"] = 42

// Struktura sa poredivim poljima
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Tačka"

Ako pokušate da koristite ne-porediv tip kao ključ, kompajler će prijaviti grešku.