Sobes.tech
Junior — Middle

არის თუ არა პროგრამირების ენაში Map მონაცემთა სტრუქტურა გასაწორებელი გასაღებით?

sobes.tech AI

პასუხი AI-სგან

Go լեզվում ներքին տվյալների կառուցվածքը map չի երաշխավորում բանալիների դասավորությունը։ Map-ի տարրերի շրջագայության կարգը պատահական է և կարող է փոխվել կրկնությունների միջև։

Եթե անհրաժեշտ է դասավորել տարրերը բանալիների միջոցով, պետք է բանալիները հանել սրից, դասավորել այն sort-ի միջոցով և ապա անցնել map-ի միջոցով դասավորված բանալիների կարգով՝

keys := make([]string, 0, len(m))
for k := range m {
    keys = append(keys, k)
}
sort.Strings(keys)
for _, k := range keys {
    fmt.Println(k, m[k])
}

Այսպիսով, map-ը ինքնին չի դասավորված, բայց դասավորումը կարելի է ձեռքով իրականացնել։