我需要构建一个函数,将多个其他函数的响应合并为一个(struct)。目前我认为唯一的方法是创建一个map [string] interface {},然后在我需要合并的结构字段范围内并指定字段名称 - >值为关键,地图中的值。还有其他方法吗?我基本上只需要将两个结构嵌入到一个结构中。
答案 0 :(得分:1)
我不确定这是否能解答您的问题,但您肯定可以将结构嵌入到一个结构中并直接访问属性。你不需要使用反射,我可以补充说,通常情况下,反射是不受欢迎的,因为它更可取于显性;反思往往是隐含的。
以下是一些代码,希望能够满足您的需求:
type Foo struct {
Bar
Baz
}
type Bar struct {
BarValue string
}
type Baz struct {
BazValue string
}
func main() {
test := Foo{Bar: Bar{BarValue: "bar"}, Baz: Baz{BazValue: "baz"}}
fmt.Println(test.BarValue)
fmt.Println(test.BazValue)
}