【问题标题】:How to get the fields of go struct如何获取 go struct 的字段
【发布时间】:2013-09-01 02:32:14
【问题描述】:

假设我们有一个User 类型

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

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

【问题讨论】:

    标签: interface struct go


    【解决方案1】:

    这可以使用反射来完成(通过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 上的实时示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2023-03-08
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多