Zuweisung zu Strukturfeldern in der Karte
Der Fehler „Zuweisung zu Strukturfeld in einer Karte nicht möglich“ tritt auf, wenn versucht wird, ein Feld von zu ändern eine Struktur, die in einer Karte gespeichert ist. Diese Einschränkung ergibt sich aus der Unveränderlichkeit von Kartenschlüsseln und -werten in Go.
Im bereitgestellten Beispiel erstellt snapshots := make(map[string] Snapshot, 1) eine Karte mit Schlüsseln vom Typ string und Werten vom Typ Snapshot, wobei Snapshot eine Struktur ist. Um den Benutzer-Slice innerhalb eines Snapshot-Werts zu ändern, müssen Sie das richtige Verfahren befolgen.
Der folgende Ansatz stellt sicher, dass der Benutzer-Slice korrekt geändert wird:
func main() { snapshots := make(map[string]Snapshot, 1) snapshots["test"] = Snapshot{ Key: "testVal", Users: make([]Users, 0), } // Get a copy of the 'Users' slice users := snapshots["test"].Users // Append user to the copy users = append(users, user) // Reassign the map entry snapshots["test"].Users = users }
Indem Sie eine Kopie des ' Benutzer-Slice können Sie ändern und die geänderte Kopie dann dem Karteneintrag neu zuweisen. Dieser Ansatz berücksichtigt die Unveränderlichkeit der Karte.
Das obige ist der detaillierte Inhalt vonWarum kann ich in einer Go-Map keine Zuweisung zu einem Strukturfeld vornehmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!