在这里打印“ Foo”的方式是什么?在此示例中,打印的是“字符串”。
http://play.golang.org/p/ZnK6PRwEPp
type A struct { Foo string } func (a *A) PrintFoo() { fmt.Println("Foo value is " + a.Foo) } func main() { a := &A{Foo: "afoo"} val := reflect.Indirect(reflect.ValueOf(a)) fmt.Println(val.Field(0).Type().Name()) }
你要val.Type().Field(0).Name。上的Field方法reflect.Type将返回一个结构,该结构描述该字段,其中包括名称以及其他信息。
val.Type().Field(0).Name
Field
reflect.Type
无法检索reflect.Value代表特定字段值的字段名,因为这是包含结构的属性。
reflect.Value