Heim > Artikel > Backend-Entwicklung > Wie füge ich in Go Werte an Arrays innerhalb von Karten hinzu?
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!