Copie approfondie de cartes dans Go : au-delà de l'artisanat
Copier des structures de données complexes telles que des cartes peut être une tâche ardue. Bien que Go ne dispose pas d'une fonction intégrée uniquement pour copier des cartes arbitraires, le package encoding/gob fournit une solution puissante.
Utilisation du package encoding/gob
L'encoding Le package /gob vous permet d’encoder et de décoder des données, permettant une copie approfondie même pour des structures complexes. Explorons comment exploiter ce package pour la copie de cartes :
func main() { ori := map[string]int{ "key": 3, "clef": 5, } var mod bytes.Buffer enc := gob.NewEncoder(&mod) dec := gob.NewDecoder(&mod) err := enc.Encode(ori) if err != nil { log.Fatal("encode error:", err) } var cpy map[string]int err = dec.Decode(&cpy) if err != nil { log.Fatal("decode error:", err) } cpy["key"] = 2 }
Avantages de l'utilisation d'encoding/gob
Cette méthode offre plusieurs avantages :
Conclusion
Bien que Go n'ait pas de fonction dédiée à la copie de cartes, le package encoding/gob fournit une solution robuste et flexible. Ses capacités de copie approfondie en font un choix idéal pour copier des cartes arbitraires et garantissent que les cartes originales et copiées sont indépendantes en mémoire.
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!