首页 文章

深度复制struct在golang中具有指针0值

提问于
浏览
0

我在 golang 中有一个结构如下

type Test struct {
    prop *int
}

prop 指向零值时,我想对struct对象进行深度复制 . 真正的结构体中有更多的字段,我想要整个struct obj的深度复制 . 我尝试使用 gob 编码 - 解码方式,但由于设计的结果,它将指针转换为0指向nil指针here . 我也尝试使用 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)
}

对此解决方案有何评论?

2 回答

相关问题