我有一个复杂的数据结构,它定义了一个类型P,我想对这种数据结构的一个实例进行深度复制。我找到了这个库,但是,考虑到 Go 语言的语义,像下面这样的方法不会更惯用吗?:
func (receiver P) copy() *P{ return &receiver }
由于该方法接收类型P的值(并且值始终通过副本传递),因此结果应该是对源的深层副本的引用,如本例所示:
src := new(P) dcp := src.copy()
的确,
src != dst => true reflect.DeepEqual(*src, *dst) => true
狐的传说
相关分类