Sobes.tech
Junior — Middle

Koji tipovi podataka su dozvoljeni kao ključevi za strukturu mape?

sobes.tech АИ

Одговор од АИ

U Go, ključevi za mapu mogu biti samo oni tipovi podataka koji podržavaju operaciju poređenja (uporedivi). To znači da ključevi mogu biti:

  • Bilo koje logičke vrednosti (bool)
  • Brojevi (int, float, complex itd.)
  • Nizovi (string)
  • Pokazivači
  • Interfejsi, ako dinamički tip podržava poređenje
  • Strukture, ako su sva njihova polja uporediva

Ne mogu se koristiti sečiva, mape, funkcije i drugi neuporedivi tipovi kao ključevi, jer ne podržavaju operator ==.

Primer:

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

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

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