Go で任意のマップのコピーを作成する
Go にはマップを複製するための効率的な組み込み関数はありますか?カスタム実装は可能ですが、既存のソリューションがあるかどうかを検討する価値があります。
encoding/gob パッケージの使用
一般的なマップのコピーの場合、encoding/gob パッケージは次のことができます。雇用される。データ構造をバイナリ ストリームにエンコードおよびデコードするメカニズムを提供します。このプロセスは、マップのディープ コピーを作成するために利用できます。
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(©Map) 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) }
このソリューションは、マップ内のマップまたはマップのスライスを含む複雑なデータ構造を扱う場合に特に有益です。 gob の使用に関する詳細については、公式 Go ブログ投稿を参照してください。
以上がGo でマップを効率的に複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。