Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich in Go Werte an Arrays innerhalb von Karten hinzu?

Wie füge ich in Go Werte an Arrays innerhalb von Karten hinzu?

DDD
DDDOriginal
2024-11-03 21:58:02126Durchsuche

How to Append Values to Arrays Within Maps in Go?

Entschlüsseln von Array-Anhängen in Karten in Go

In Go sind Karten leistungsstarke Werkzeuge zum Organisieren von Daten. Es kann jedoch schwierig werden, Werte an Arrays innerhalb dieser Karten anzuhängen. Stellen Sie sich ein hypothetisches Szenario vor:

var MyMap map[string]Example

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

Puzzle Unveiled

Das Code-Snippet versucht, Ganzzahlen und Zeichenfolgen an Arrays innerhalb einer Karte namens MyMap anzuhängen. Allerdings enthält die Implementierung einen entscheidenden Fehler:

MyMap["key1"] = Offerty.AppendOffer(1, "SomeText")

Hier kann Offerty nicht als Objekt erkannt werden, da es nie definiert ist. Um dieses Problem zu beheben, erstellen Sie eine Instanz der Beispielstruktur, bevor Sie sie mit der Karte verknüpfen, wie unten gezeigt:

obj := &Example{[]int{}, []string{}}
obj.AppendOffer(1, "SomeText")

Referenz, nicht kopieren

Außerdem ist die Der Codeausschnitt erstellt lediglich eine Kopie der Beispielstruktur, keinen Verweis darauf. So behalten Sie einen Zeiger auf die Struktur innerhalb der Karte bei:

MyMap = make(map[string]*Example)
MyMap["key1"] = obj

Lösung in Sicht

Mit diesen Änderungen hängt der überarbeitete Code erfolgreich Werte an Arrays innerhalb der Karte an :

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)
}

Diese Lösung behält die ursprüngliche Beispielstruktur innerhalb der Karte bei und ermöglicht Aktualisierungen und Änderungen an ihren Arrays von außerhalb des Bereichs.

Das obige ist der detaillierte Inhalt vonWie füge ich in Go Werte an Arrays innerhalb von Karten hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn