小编典典

使用反射获取结构字段的名称

go

在这里打印“ 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())
}

阅读 232

收藏
2020-07-02

共1个答案

小编典典

你要val.Type().Field(0).Name。上的Field方法reflect.Type将返回一个结构,该结构描述该字段,其中包括名称以及其他信息。

无法检索reflect.Value代表特定字段值的字段名,因为这是包含结构的属性。

2020-07-02