Sobes.tech
Junior — Middle

Կարո՞ղ է այլ Map օգտագործել որպես բանալի Map-ում։

sobes.tech AI

Պատասխան AI-ից

Go-ում, քարտի բանալին կարող է լինել միայն այն տիպը, որը աջակցում է համեմատության գործողությանը (== օպերատոր): Ներքին map տիպը չի աջակցում համեմատությանը, այդ պատճառով map-ը չի կարող օգտագործվել որպես այլ map-ի բանալի:

Եթե անհրաժեշտ է օգտագործել բարդ, համակցված բանալի, կարող եք:

  • Օգտագործել կառուցվածք, որի դաշտերը համեմատելի են (օրինակ, տողեր, թվեր):
  • Սերիալիզացնել map-ը տող (օրինակ, JSON) և օգտագործել այդ տողը որպես բանալի:

Օրինակ՝ կառուցվածքը որպես բանալի օգտագործելու համար՝

type Key struct {
    Field1 string
    Field2 int
}

m := make(map[Key]string)
m[Key{Field1: "a", Field2: 1}] = "արժեք"

Այսպիսով, ուղղակի map-ը որպես բանալի օգտագործել հնարավոր չէ։