duanbi2003
2018-04-07 03:41
浏览 120
已采纳

如何在golang中获取结构字段类型?

type Role int

type User struct {
    Id int64
    Name string
    Role Role
}

func ListFields(a interface{}) {
    v := reflect.ValueOf(a).Elem()
    for j := 0; j < v.NumField(); j++ {
        f := v.Field(j)
        n := v.Type().Field(j).Name
        t := f.Type().String()
        fmt.Printf("Name: %s  Kind: %s  Type: %s
", n, f.Kind(), t)
    }
}

func main() {

    var u User
    ListFields(&u)
}

go run main.go

Name: Id Kind: int64 Type: int64

Name: Name Kind: string Type: string

Name: Role Kind: int Type: main.Role <--- how to get int type ?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题