特定
var dst, src map[K]V
Run Code Online (Sandbox Code Playgroud)
我可以复制所有项目src到dst做
for k, v := range src {
dst[k] = v
}
Run Code Online (Sandbox Code Playgroud)
有没有比较惯用的方法呢?
copy仅适用于切片(以及string作为源).
gob 无法编码 map[string]interface{}
gob: type not registered for interface: map[string]interface {}
Run Code Online (Sandbox Code Playgroud)
http://play.golang.org/p/Si4hd8I0JE
package main
import (
"bytes"
"encoding/gob"
"encoding/json"
"fmt"
"log"
)
func CloneObject(a, b interface{}) []byte {
buff := new(bytes.Buffer)
enc := gob.NewEncoder(buff)
dec := gob.NewDecoder(buff)
err := enc.Encode(a)
if err != nil {
log.Panic("e1: ", err)
}
b1 := buff.Bytes()
err = dec.Decode(b)
if err != nil {
log.Panic("e2: ", err)
}
return b1
}
func main() {
var a interface{}
a = map[string]interface{}{"X": 1}
b2, err := …Run Code Online (Sandbox Code Playgroud)