Go如何进行结构体的deep copy

下面这个是我们经常会遇到的一个结构体

type MyNode struct {
    value string
    edges []*MyNode
}

我通过下面这个方式连接起来各个节点之间的信息

func (node *MyNode) ConnectTo(otherNode *MyNode) *MyNode {
    node.edges = append(node.edges, othernode)
    otherNode.edges = append(otherNode.edges, node)
    return otherNode
}

但是我期望在某一些节点上面做一些操作,但是又不影响原来的信息,所以就需要deep copy,目前Go里面有什么好的方式吗?

已邀请:

simple - 既要有梦想,又要有实力

赞同来自: 鬼雀

想实现deep copy就自己在对应的类型上实现一个deepcopy方法就好了吧,C++虽然从语言层面上拷贝构造函数和operator=函数,但想深拷贝还是要自己实现这两个函数才好。

astaxie - 创造、获取、分享、传播和应用Go

赞同来自: simon

要回复问题请先登录注册