Maison > développement back-end > Golang > Comment ajouter des valeurs aux tableaux dans les cartes dans Go ?

Comment ajouter des valeurs aux tableaux dans les cartes dans Go ?

DDD
Libérer: 2024-11-03 21:58:02
original
203 Les gens l'ont consulté

How to Append Values to Arrays Within Maps in Go?

Démêler les ajouts de tableaux dans les cartes dans Go

Dans Go, les cartes sont des outils puissants pour organiser les données. Cependant, cela peut devenir délicat lorsque vous essayez d'ajouter des valeurs aux tableaux au sein de ces cartes. Considérons un scénario hypothétique :

var MyMap map[string]Example

type Example struct {
    Id []int
    Name []string
}
Copier après la connexion

Puzzle dévoilé

L'extrait de code tente d'ajouter des entiers et des chaînes à des tableaux dans une carte appelée MyMap. Cependant, l'implémentation contient une erreur cruciale :

MyMap["key1"] = Offerty.AppendOffer(1, "SomeText")
Copier après la connexion

Ici, Offerty ne peut pas être reconnu comme un objet car il n'est jamais défini. Pour résoudre ce problème, créez une instance de la structure Exemple avant de l'associer à la carte, comme indiqué ci-dessous :

obj := &Example{[]int{}, []string{}}
obj.AppendOffer(1, "SomeText")
Copier après la connexion

Référence, pas de copie

De plus, la l'extrait de code crée simplement une copie de la structure Exemple, pas une référence à celle-ci. Pour conserver un pointeur vers la structure dans la carte :

MyMap = make(map[string]*Example)
MyMap["key1"] = obj
Copier après la connexion

Solution en vue

Avec ces modifications, le code révisé ajoute avec succès des valeurs aux tableaux dans la carte :

package main

import "fmt"

type Example struct {
    Id []int
    Name []string
}

func (data *Example) AppendOffer(id int, name string) {
    data.Id = append(data.Id, id)
    data.Name = append(data.Name, name)
}

var MyMap map[string]*Example

func main() {
    obj := &Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}
Copier après la connexion

Cette solution préserve la structure d'exemple d'origine dans la carte, permettant les mises à jour et les modifications de ses tableaux depuis la portée extérieure.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal