Sobes.tech
Junior — Middle

Kokie duomenų tipai leidžiami kaip raktai žemėlapio struktūroje?

sobes.tech AI

Atsakymas iš AI

Go kalbant, žemėlapio raktai gali būti tik tie duomenų tipai, kurie palaiko palyginimo operaciją (palyginami). Tai reiškia, kad raktai gali būti:

  • Loginės reikšmės (bool)
  • Skaičiai (int, float, complex ir kt.)
  • Eilutės (string)
  • Nuorodos
  • Sąsajos, jei dinaminis tipas palaiko palyginimą
  • Struktūros, jei visi jų laukai yra palyginami

Negalima naudoti skaidinių, žemėlapių, funkcijų ir kitų nepalyginamų tipų kaip raktų, nes jie nepalaiko == operatoriaus.

Pavyzdys:

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

// Struktūra su palyginamais laukais
type Point struct {
    X, Y int
}

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