Maison >développement back-end >Golang >Comment stocker efficacement des listes de valeurs dans Maps in Go ?

Comment stocker efficacement des listes de valeurs dans Maps in Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-23 03:08:16655parcourir

How to Efficiently Store Lists of Values within Maps in Go?

Utiliser des listes avec des cartes dans Go

Créer une carte de chaîne vers une liste de valeurs dans Go implique d'utiliser des structures de données du conteneur/ paquet de liste. Voici un extrait de code qui illustre le processus :

package main

import (
    "fmt"
    "container/list"
)

func main() {
    // Create a map of string to list
    x := make(map[string]*list.List)

    // Assign a new list to a key in the map
    x["key"] = list.New()

    // Push a value to the list
    x["key"].PushBack("value")

    // Retrieve the first value from the list associated with the key
    fmt.Println(x["key"].Front().Value)
}

Ce code montre comment créer une carte qui associe des clés de chaîne à des listes de valeurs. Il initialise la carte, y ajoute une nouvelle liste sous la clé « clé », insère une valeur dans la liste et récupère enfin la première valeur de la liste.

Approche alternative utilisant des tranches

Une approche alternative pour utiliser des listes avec des cartes consiste à utiliser des tranches à la place. Les tranches sont plus couramment utilisées dans Go en raison de leur simplicité et de leur efficacité. Voici à quoi ressemblerait le code en utilisant des tranches :

package main

import "fmt"

func main() {
    // Create a map of string to string slices
    x := make(map[string][]string)

    // Append values to the slice associated with the key
    x["key"] = append(x["key"], "value")
    x["key"] = append(x["key"], "value1")

    // Retrieve the first and second values from the slice
    fmt.Println(x["key"][0])
    fmt.Println(x["key"][1])
}

Dans ce code, la carte associe les clés de chaîne à des tranches de chaînes. Les valeurs sont ajoutées à la tranche sous la clé, puis les première et deuxième valeurs sont récupérées et imprimées.

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