Maison > développement back-end > Golang > Comment puis-je copier en profondeur et effacer des cartes dans Go ?

Comment puis-je copier en profondeur et effacer des cartes dans Go ?

Patricia Arquette
Libérer: 2024-12-21 19:00:12
original
241 Les gens l'ont consulté

How Do I Deep Copy and Clear Maps in Go?

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 :

  1. Créez une nouvelle carte : Allouez une nouvelle carte pour stocker les données copiées.

    newMap := make(map[string]aStruct)
    Copier après la connexion
  2. 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
    }
    Copier après la connexion

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)
}
Copier après la connexion

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal