Maison > développement back-end > Golang > le corps du texte

Comment ajouter des valeurs aux tableaux d'une carte dans Go tout en préservant les références d'objet ?

Barbara Streisand
Libérer: 2024-11-01 21:28:29
original
912 Les gens l'ont consulté

How do you append values to arrays within a map in Go while preserving object references?

Ajout de valeurs à un tableau dans une carte dans Go

Lorsque vous essayez d'ajouter des valeurs à des tableaux dans une carte, vous pouvez rencontrer des difficultés pour définir des références aux exemples d'objets.

Dans Go, le code suivant tente d'ajouter des valeurs à une structure exemple :

<code class="go">var MyMap map[string]Example 

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

package main


import (
  "fmt"
)


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

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

var MyMap map[string]Example

func main() {
   MyMap = make(map[string]Example)
   MyMap["key1"] = Oferty.AppendExample(1,"SomeText")
   fmt.Println(MyMap)
}</code>
Copier après la connexion

Cependant, ce code est incorrect pour plusieurs raisons :

  • Erreur d'initialisation : Oferty est une variable non définie.
  • Création d'instance : Une instance d'Exemple doit être créée avant de l'ajouter à la carte.
  • Problème de référence de carte : La carte MyMap devrait contenir des références à des instances d'exemple, et non à des copies.

Le code corrigé suivant résout ces problèmes :

<code class="go">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 := &amp;Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}</code>
Copier après la connexion

Dans ce code corrigé :

  • Une instance d'Exemple (obj) est créée avant de l'ajouter à la carte.
  • La carte MyMap contient des références à Exemples d'instances utilisant des pointeurs (*Exemple).
  • La méthode AppendOffer est utilisée pour ajouter des valeurs aux champs de tableau de l'exemple d'instance.

En implémentant ces corrections, le code ajoute correctement valeurs aux tableaux de la carte tout en préservant les références d'objet.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!