Golang Reflection:从struct字段获取标签
发布时间:2020-12-16 19:29:14 所属栏目:大数据 来源:网络整理
导读:是否可以反映一个结构体的一个字段,并获得对其标签值的引用? 例如: type User struct { name string `json:name-field` age int}...user := User{"John Doe The Fourth",20}getStructTag(user.name)...func getStructTag(i interface{}) string{ //get tag
是否可以反映一个结构体的一个字段,并获得对其标签值的引用?
例如: type User struct { name string `json:name-field` age int } ... user := &User{"John Doe The Fourth",20} getStructTag(user.name) ... func getStructTag(i interface{}) string{ //get tag from field } 从我可以看到,通常的方法是超过typ.NumField(),然后调用field.Tag.Get(“tagname”).然而,在我的用例中,没有必要传递整个结构将会更好.任何想法?
你不需要传递整个结构体,而是传递一个字段的值是不够的.在您的示例中,user.name只是一个字符串 – 反射包将无法将其与原始结构相关联.
相反,您需要传递给定字段的reflect.StructField: field,ok := reflect.TypeOf(user).Elem().FieldByName("name") … tag = string(field.Tag) 见http://play.golang.org/p/G6wxUVVbOw (注意,我们使用Elem,因为用户是一个指向结构体的指针). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |