深拷贝
作者:
funcx | 来源:发表于
2019-11-15 11:14 被阅读0次func DeepCopy(a, b interface{}) {
buff := new(bytes.Buffer)
enc, dec := gob.NewEncoder(buff), gob.NewDecoder(buff)
if err := enc.Encode(a); err != nil {
panic(err)
}
if err := dec.Decode(b); err != nil {
panic(err)
}
}
func Replica(a interface{}) interface{} {
rv := reflect.ValueOf(a)
for rv.Kind() == reflect.Ptr {
rv = rv.Elem()
}
b := reflect.New(rv.Type())
DeepCopy(a, b.Interface())
return b.Elem().Interface()
}
本文标题:深拷贝
本文链接:https://www.haomeiwen.com/subject/hibjictx.html
网友评论