如何获取go struct的字段

时间:2013-08-28 20:35:58

标签: interface struct go

假设我们有User类型

type User struct {
    FirstName string
    LastName  string
    ...
}

我需要一个返回[]string的函数,其中包含字段名称[FirstName, LastName, ...]

1 个答案:

答案 0 :(得分:4)

这可以使用反射(通过reflect包)来完成:

instance := struct{Foo string; Bar int }{"foo", 2}

v := reflect.ValueOf(instance)

names := make([]string, 0, v.NumField())

v.FieldByNameFunc(func(fieldName string) bool{
    names = append(names, fieldName)
    return false
})

play上的实例。