Copier et effacer des cartes dans Go
Lors de la manipulation de cartes dans Go, il est important de comprendre les nuances subtiles de la copie et de l'effacement. Pour créer une copie complète d'une carte, en évitant les références partagées qui pourraient entraîner des modifications involontaires, suivez ces étapes :
Créez une nouvelle carte : Allouez une nouvelle carte pour stocker les données copiées.
newMap := make(map[string]aStruct)
Itérer sur l'original map : Parcourez chaque paire clé-valeur de la carte d'origine.
for k, v := range originalMap { // Copy the value into the new map. newMap[k] = v }
Cette approche garantit que la nouvelle carte est une copie véritablement indépendante, avec son propre ensemble distinct de références. Une fois la copie créée, vous pouvez effacer en toute sécurité la carte originale sans affecter la nouvelle copie :
for k := range originalMap { delete(originalMap, k) }
Alternativement, si vous souhaitez créer une copie superficielle (qui partage les données sous-jacentes), vous pouvez simplement attribuer la carte d'origine vers la nouvelle carte :
newMap = originalMap
Cependant, notez que les modifications apportées à l'une ou l'autre carte affecteront l'autre, car elles font référence à la même structure de données.
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!