Maison > développement back-end > Golang > Comment créer des copies complètes de cartes dans Go ?

Comment créer des copies complètes de cartes dans Go ?

Patricia Arquette
Libérer: 2024-11-29 02:01:14
original
224 Les gens l'ont consulté

How to Create Deep Copies of Maps in Go?

Création de copies complètes de cartes dans Go

Bien que vous puissiez créer manuellement une copie d'une carte, il peut être plus pratique d'utiliser des -dans des fonctions ou des bibliothèques.

Intégré Fonctions

Malheureusement, il n'existe pas de fonction intégrée spécifiquement pour faire des copies de cartes arbitraires dans Go.

Bibliothèques et packages

  • encoding/gob : Cette bibliothèque vous permet d'encoder et de décoder des structures de données arbitraires, y compris des cartes. En codant la carte originale et en la décodant dans une nouvelle variable, vous pouvez créer une copie complète.
import (
    "bytes"
    "encoding/gob"
    "fmt"
)

func main() {
    ori := map[string]int{
        "key":  3,
        "clef": 5,
    }

    // Encode the original map
    var mod bytes.Buffer
    enc := gob.NewEncoder(&mod)
    err := enc.Encode(ori)
    if err != nil {
        fmt.Println("Failed to encode map:", err)
        return
    }

    // Decode the encoded map into a new variable (deep copy)
    var cpy map[string]int
    dec := gob.NewDecoder(&mod)
    err = dec.Decode(&cpy)
    if err != nil {
        fmt.Println("Failed to decode map:", err)
        return
    }

    // Modify the copied map to demonstrate they are independent
    cpy["key"] = 2
    fmt.Println("Original map:", ori)
    fmt.Println("Copied map:", cpy)
}
Copier après la connexion

En utilisant l'une de ces approches, vous pouvez facilement créer des copies complètes de cartes dans Go.

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