【发布时间】:2014-08-11 13:53:47
【问题描述】:
给定这样的结构:
type B struct {
X string
Y string
}
type D struct {
B
Z string
}
我想反思 D 并进入 X、Y、Z 领域。
直观地说,在尝试解决方案之前,我假设我能够遍历结构 D 并使用反射 (X, Y, Z) 获取所有字段,而不必处理 B。
但正如您所见,我只看到使用反射的嵌入结构 B 而不是它的字段。
http://play.golang.org/p/qZQD5GdTA8
有没有办法让 B 在反射到 D 时完全透明?
我为什么要这个?
对一个通用结构(此处示例中的 B)进行成像,该结构通过嵌入在多个其他结构中使用。使用反射,尝试将 D 复制到不同包中的另一个类似结构中。用于复制的目标结构将所有属性平放(没有嵌入)。因此,从源到目标存在不匹配(嵌入与不嵌入),但所有平面布局的属性都是相同的。我不想为每个结构创建自定义解决方案。
【问题讨论】:
标签: go