copier package - github.com/jinzhu/copier - Go Packages
copier 能够 copy 不同对象的同名同类型属性,甚至可以设置忽略大小写、深/浅拷贝。对于int
、int32
、int64
的同名属性,copier 认为是一致的,对于struct
和*struct
,也认为是一致的,下面的 clone 操作是可行的:
type Child struct {
Val int
}
type A struct {
Number int32
Kid Child
Kids []Child
}
type B struct {
Number int64
Kid *Child
Kids []*Child
}
func main() {
var a A = A{}
var b B = B{}
copier.Copy(&b, &a)
}
小写开头的属性是包私有的,对于 copier 不可见