在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中文網其他相關文章!