Maison > développement back-end > Golang > Comment puis-je dupliquer efficacement des cartes dans Go ?

Comment puis-je dupliquer efficacement des cartes dans Go ?

Linda Hamilton
Libérer: 2024-12-03 07:45:11
original
371 Les gens l'ont consulté

How Can I Efficiently Duplicate Maps in Go?

Création de copies de cartes arbitraires dans Go

Existe-t-il une fonction efficace et intégrée dans Go pour la duplication de cartes ? Bien que des implémentations personnalisées soient possibles, il vaut la peine d'explorer s'il existe des solutions existantes.

Utilisation du package encoding/gob

Pour la copie générale de cartes, le package encoding/gob peut être employé. Il offre un mécanisme d'encodage et de décodage des structures de données dans un flux binaire. Ce processus peut être exploité pour créer une copie complète d'une carte.

package main

import (
    "bytes"
    "encoding/gob"
    "fmt"
    "log"
)

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

    // Encode the original map into a buffer
    buf := &bytes.Buffer{}
    encoder := gob.NewEncoder(buf)
    err := encoder.Encode(origMap)
    if err != nil {
        log.Fatal(err)
    }

    // Decode the buffer into a new map
    var copyMap map[string]int
    decoder := gob.NewDecoder(buf)
    err = decoder.Decode(&copyMap)
    if err != nil {
        log.Fatal(err)
    }

    // Modify the copy without affecting the original
    copyMap["key"] = 2

    // Display both maps
    fmt.Println("Original:", origMap)
    fmt.Println("Copy:", copyMap)
}
Copier après la connexion

Cette solution est particulièrement bénéfique lorsqu'il s'agit de structures de données complexes contenant des cartes dans des cartes ou des tranches de cartes. Pour des informations plus détaillées sur l'utilisation des gobs, reportez-vous au billet de blog officiel de 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