Sobes.tech
Junior — Middle

Как да извлечем стойности, сортирани по идентификатор, от хеш таблица?

sobes.tech AI

Отговор от AI

В Go хеш таблицата се реализира с помощта на типа map, който не гарантира реда на елементите при итерация. За да получите стойности, сортирани по ключ (например, идентификатор), трябва:

  1. Да извлечете всички ключове от картата в срез.
  2. Да сортирате среза с помощта на функцията sort.
  3. Да преминете през сортираните ключове и да получите съответните стойности от картата.

Пример:

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])
    }
}

По този начин ще получите стойностите, сортирани по идентификатор (ключ).