Maison >développement back-end >Golang >Comment parcourir les Go Maps dans un ordre spécifique ?

Comment parcourir les Go Maps dans un ordre spécifique ?

DDD
DDDoriginal
2024-12-07 16:58:15341parcourir

How to Iterate Through Go Maps in a Specific Order?

Pourquoi les cartes s'impriment dans le désordre

Dans Go, les cartes sont des collections non ordonnées de paires clé-valeur. Cela signifie que l'ordre des éléments dans une carte n'est pas garanti. Lorsque vous parcourez une carte, les éléments sont renvoyés dans un ordre arbitraire, ce qui peut prêter à confusion ou poser problème si vous avez besoin d'un ordre spécifique.

Mettre les cartes dans l'ordre

Pour mettre les cartes en ordre, vous pouvez utiliser le package sort. Voici un exemple :

package main

import (
    "fmt"
    "sort"
)

type monthsType struct {
    no   int
    text string
}

var months = map[int]string{
    1:"January", 2:"Fabruary", 3:"March", 4:"April", 5:"May", 6:"June",
    7:"July", 8:"August", 9:"September", 10:"October", 11:"Novenber", 12:"December",
}

func main(){
    // Create a slice of the map keys
    keys := make([]int, len(months))
    i := 0
    for key := range months {
        keys[i] = key
        i++
    }

    // Sort the slice of keys
    sort.Ints(keys)

    // Iterate over the keys and print the corresponding values
    for _, key := range keys {
        fmt.Println(key, "-", months[key])
    }
}

Ce code affichera les éléments de la carte par ordre croissant des clés :

1 - January
2 - Fabruary
3 - March
4 - April
5 - May
6 - June
7 - July
8 - August
9 - September
10 - October
11 - Novenber
12 - December

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn