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-ში სვლას წესრიგი არ არის განსაზღვრული და შემთხვევითია.