Sobes.tech
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 ба таври пешфарз муайян нашудааст ва тасодуфӣ мебошад.