Attribution aux champs Struct dans la carte
L'erreur "Impossible d'attribuer au champ struct dans une carte" se produit lors de la tentative de modification d'un champ de une structure stockée dans une carte. Cette limitation provient de l'immuabilité des clés et valeurs de la carte dans Go.
Dans l'exemple fourni, snapshots := make(map[string] Snapshot, 1) crée une carte avec des clés de type string et des valeurs de type Snapshot, où Snapshot est une structure. Pour modifier la tranche Utilisateurs au sein d'une valeur Snapshot, vous devez suivre la procédure appropriée.
L'approche suivante garantit que la tranche Utilisateurs est modifiée correctement :
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 }
En obtenant une copie du ' Tranche des utilisateurs, vous pouvez modifier puis réaffecter la copie modifiée à l'entrée de la carte. Cette approche adhère à l'immuabilité de la carte.
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!