3

假设我们有一个User类型

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

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

4

1 回答 1

4

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

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
})

游戏中的活生生的例子。

于 2013-08-28T20:50:50.723 回答