Pointers 如何使用reflect获取指针的底层类型?

Pointers 如何使用reflect获取指针的底层类型?,pointers,go,reflection,struct,Pointers,Go,Reflection,Struct,我想要的是通过B获得A的字段,比如 type A struct { Field_1 string } type B struct { *A } fieldsOfA := someMagicFunc(&B{}) 您可以使用获取某个变量的反射对象 如果还要修改变量或其字段,则必须将变量的地址(指针)传递到ValueOf()。在这种情况下,值将属于指针(而不是指向的值),但您可以使用“导航”到指向对象的值 *A嵌入在B中,因此A的字段可以从B的值中引用。您可以简单地使用按名称访问字

我想要的是通过
B
获得
A
的字段,比如

type A struct {
  Field_1 string
}
type B struct {
  *A
}

fieldsOfA := someMagicFunc(&B{})
您可以使用获取某个变量的反射对象

如果还要修改变量或其字段,则必须将变量的地址(指针)传递到
ValueOf()
。在这种情况下,
将属于指针(而不是指向的值),但您可以使用“导航”到指向对象的

*A
嵌入在
B
中,因此
A
的字段可以从
B
的值中引用。您可以简单地使用按名称访问字段,以获取或设置其值

这样就可以了,试穿一下:

输出:

Initial value: {initial}
Field_1 through reflection: initial
After modified through reflection: {works}
我建议您阅读这篇博文,了解围棋中反射的基本知识:

Initial value: {initial}
Field_1 through reflection: initial
After modified through reflection: {works}