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 中国語 Web サイトの他の関連記事を参照してください。