Junior — Middle
Как да извлечем стойности, сортирани по идентификатор, от хеш таблица?
sobes.tech AI
Отговор от AI
В Go хеш таблицата се реализира с помощта на типа map, който не гарантира реда на елементите при итерация. За да получите стойности, сортирани по ключ (например, идентификатор), трябва:
- Да извлечете всички ключове от картата в срез.
- Да сортирате среза с помощта на функцията
sort. - Да преминете през сортираните ключове и да получите съответните стойности от картата.
Пример:
package main
import (
"fmt"
"sort"
)
func main() {
data := map[int]string{
3: "три",
1: "едно",
2: "две",
}
// Извличане на ключове
keys := make([]int, 0, len(data))
for k := range data {
keys = append(keys, k)
}
// Сортиране на ключовете
sort.Ints(keys)
// Обхождане на сортираните ключове
for _, k := range keys {
fmt.Printf("%d: %s\n", k, data[k])
}
}
По този начин ще получите стойностите, сортирани по идентификатор (ключ).