在 Go 中创建地图的深层副本
虽然您可以手动创建地图的副本,但使用内置的地图可能会更方便-in 函数或库。
内置函数
不幸的是,Go 中没有专门用于制作任意映射副本的内置函数。
库和包
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) }
通过利用其中一种方法,您可以方便地在 Go 中创建映射的深度副本。
以上是如何在 Go 中创建地图的深层副本?的详细内容。更多信息请关注PHP中文网其他相关文章!