Junior — Middle
Раванди давракунии унсурҳо дар сохтори маълумоти Map чӣ гуна амалӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар Go, сохтори маълумоти map кафолат намедиҳад, ки тартиби муайян дар гузаронидани унсурҳо бошад. Ҳангоми такрор дар сари for range, тартиб тасодуфӣ хоҳад буд ва метавонад дар ҳар иҷрои барнома тағйир ёбад.
Масалан барои гузаронидани унсурҳо дар map:
m := map[string]int{"a": 1, "b": 2, "c": 3}
for key, value := range m {
fmt.Println(key, value)
}
Агар ба гузаронидани тартибдодашуда ниёз бошад, одатан калидҳоро ба срез мебаранд, онҳоро ба тартиб меоранд ва сипас дар тартиби сортшуда гузаронида мешаванд:
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 ба таври пешфарз муайян нашудааст ва тасодуфӣ мебошад.