type SameStructType struct{
Test string
}
func A() interface{} {
return SameStructType{
Test:"123",
}
}
func B() interface{} {
return &SameStructType{}
}
a:=A()
b:=B()
// *b=a //I want to make b assigned by a.
如果我知道实际的类型,我可以使用下面的代码:
a := A().(SameStructType)
b := B().(*SameStructType)
*b = a
问题是我不知道他们的实际类型,但我知道他们有相同的类型。
有没有一个简单的方法来代替“reflect”?我不喜欢使用reflect逐字段解析结构体,因为它很慢。
如果我必须使用reflect,有没有简单的方法?我确信它们有相同的类型,那么有没有像C/C++那样快速复制内存的方法呢?
1条答案
按热度按时间e3bfsja21#
我找到了一个“愚蠢”的方法。
它工作得很好,json包使用reflect来编码/解码接口{}。我认为这个解决方案很容易编码,但运行缓慢,所以我不认为这是一个好的解决方案。