英文:
How to get the fields of go struct
问题
让我们假设我们有一个 User
类型:
type User struct {
FirstName string
LastName string
...
}
我需要一个函数,它返回一个包含字段名的 []string
,即 [FirstName, LastName, ...]
。
英文:
Lets say we have a User
type
type User struct {
FirstName string
LastName string
...
}
I need a function that returns []string
with the field names in it [FirstName, LastName, ...]
答案1
得分: 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上有一个实时示例。
英文:
This can be done using reflection (via the reflect package):
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
})
Live example on play.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论