我有一个结构golang
如下
type Test struct {
prop *int
}
prop
当指针指向零值时,我想对结构对象进行深度复制。真正的结构中有更多的字段,我想要整个结构 obj 的深度复制。我尝试使用gob
编码解码方式,但由于此处提到的设计结果,它将指针转换为 0 到零指针。我也尝试使用reflect.Copy
,但它因错误而恐慌panic: reflect: call of reflect.Copy on struct Value
。有没有更好的方法来深度复制这样的结构对象?
编辑:我尝试使用json
编码/解码,它有点工作。但我不知道它的缺点。
func DeepCopy(a, b interface{}) {
byt, _ := json.Marshal(a)
json.Unmarshal(byt, b)
}
对此解决方案有何评论?