关于结构体复制问题
有两个结构体:
type A struct {
ID int
Name string
}
type B struct {
ID int
Name string
}
结构体类型不同,但是结构体内参数完全一致,可以相互复制吗?例如 A.ID = 1,A.Name = “abc”,怎么把整个结构体的内容复制给B结构体?不要跟我说一个参数一个参数去=….
有两个结构体:
type A struct {
ID int
Name string
}
type B struct {
ID int
Name string
}
结构体类型不同,但是结构体内参数完全一致,可以相互复制吗?例如 A.ID = 1,A.Name = “abc”,怎么把整个结构体的内容复制给B结构体?不要跟我说一个参数一个参数去=….
共 5 个回复
stevewang
用unsafe可以做到,但是很不安全,强烈不推荐:
如果挨个成员赋值嫌麻烦,可以封装成一个函数就方便了:
sryan
不能直接复制
可以使用反射来赋值
Simbory
将A struct 序列化成json 然后再将json反序列化成B struct
darkofday
可以看看我写的gotools.StructCopy,还支持指针和非指针类型间的复制。
https://github.com/YueHonghui/gotools
yuankan20081
花点时间改下你类型的定义呗
对于类型B的使用又不会影响