Sobes.tech
Junior — Middle

Come estrarre i valori ordinati per identificatore da una tabella hash?

sobes.tech AI

Risposta dell'AI

In Go, la tabella hash viene implementata con il tipo map, che non garantisce l'ordine degli elementi durante l'iterazione. Per ottenere valori ordinati per chiave (ad esempio, identificatore), devi:

  1. Estrarre tutte le chiavi dalla mappa in un slice.
  2. Ordinare il slice di chiavi usando la funzione sort.
  3. Iterare sulle chiavi ordinate e ottenere i valori corrispondenti dalla mappa.

Esempio:

package main

import (
    "fmt"
    "sort"
)

func main() {
    data := map[int]string{
        3: "tre",
        1: "uno",
        2: "due",
    }

    // Estrai le chiavi
    keys := make([]int, 0, len(data))
    for k := range data {
        keys = append(keys, k)
    }

    // Ordina le chiavi
    sort.Ints(keys)

    // Itera sulle chiavi ordinate
    for _, k := range keys {
        fmt.Printf("%d: %s\n", k, data[k])
    }
}

In questo modo otterrai i valori ordinati per identificatore (chiave).