Heim > Backend-Entwicklung > Golang > 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
Freigeben: 2024-11-03 21:58:02
Original
201 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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")
Nach dem Login kopieren

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")
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage