英文:
Retrieve annotations on structs' variables using reflection
问题
在Go语言中,可以使用反射来获取结构体变量的注解。考虑以下结构体:
type AType struct {
ID string `xml:"my_id"`
Date string `xml:"creation_ts"`
}
如何使用反射来获取ID字段的xml:"my_id"
注解呢?下面的代码将打印变量的名称、类型和值,但不包括注解。
s := reflect.ValueOf(&aType).Elem()
typeOfT := s.Type()
for i := 0; i < s.NumField(); i++ {
f := s.Field(i)
fmt.Printf("%d: %s %s = %v\n", i,
typeOfT.Field(i).Name, f.Type(), f.Interface())
}
希望对你有帮助!
英文:
In go, is it possible to retrieve structs' variable annotation? Considering the following struct:
type AType struct {
ID string `xml:"my_id"`
Date string `xml:"creation_ts"`
}
How can I retrieve the xml:"my_id"
part for the ID field using reflection ? The following will print the name, type and value of the variable but not the annotation.
s := reflect.ValueOf(&aType).Elem()
typeOfT := s.Type()
for i := 0; i < s.NumField(); i++ {
s.Field(i).
f := s.Field(i)
fmt.Printf("%d: %s %s = %v\n", i,
typeOfT.Field(i).Name, f.Type(), f.Interface())
}
Thanks,
答案1
得分: 2
StructField.Tag
可以用作 f.Tag
。
参考资料:
一个可运行的示例,由 @mkopriva 提供:https://play.golang.org/p/reY-IDCyaq
英文:
It is available as StructField.Tag
, so
f.Tag
References:
A working example, credits @mkopriva: https://play.golang.org/p/reY-IDCyaq
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论