Sobes.tech
Junior — Middle

Ako možno extrahovať hodnoty zoradené podľa identifikátora z hash tabuľky?

sobes.tech AI

Odpoveď od AI

V Go je hash tabuľa implementovaná pomocou typu map, ktorý nezaručuje poradie prvkov počas iterácie. Aby ste získali hodnoty zoradené podľa kľúča (napríklad identifikátora), musíte:

  1. Vyextrahovať všetky kľúče z mapy do poľa.
  2. Pole kľúčov zoradiť pomocou funkcie sort.
  3. Prejsť zoradené kľúče a získať zodpovedajúce hodnoty z mapy.

Príklad:

package main

import (
    "fmt"
    "sort"
)

func main() {
    data := map[int]string{
        3: "tri",
        1: "jeden",
        2: "dva",
    }

    // Vyextrahovať kľúče
    keys := make([]int, 0, len(data))
    for k := range data {
        keys = append(keys, k)
    }

    // Zoradiť kľúče
    sort.Ints(keys)

    // Prejsť zoradené kľúče
    for _, k := range keys {
        fmt.Printf("%d: %s\n", k, data[k])
    }
}

Týmto spôsobom získate hodnoty zoradené podľa identifikátora (kľúča).