Sobes.tech
Junior — Middle

Kokie duomenų tipai yra tinkami naudoti kaip raktai Map struktūroje?

sobes.tech AI

Atsakymas iš AI

Go kalboje raktai map struktūroje gali būti tik tie tipai, kurie palaiko lyginimo operaciją (== ir !=). Tai svarbu, nes raktų pagalba ieškant reikšmės, reikia palyginti raktus.

Tinkami raktų tipai:

  • Paprasti tipai: int, float64, string, bool ir kt.
  • Nuorodos
  • Struktūros, jei visi jų laukai yra palyginami
  • Masyvai, jei jų elementai yra palyginami

Negalima naudoti kaip raktų:

  • Slicing (slice`)
  • Žemėlapiai (map)
  • Funkcijos

Pavyzdys:

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

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

Jei bandysite naudoti slicing kaip raktą, kompiliatorius išmes klaidą.