golang的结构体不止只有结构类型,还有一个标签, 当两个相同结构类型,相同数值都相同的时候, 标签不同, 其俩对象也不相同。
使用方式为反射机制。
package main
import (
"fmt"
"reflect"
)
type resume struct {
Name string `json:"name" doc:"我的名字"`
}
func findDoc(stru interface{}) map[string]string {
t := reflect.TypeOf(stru).Elem()
doc := make(map[string]string)
for i := 0; i < t.NumField(); i++ {
doc[t.Field(i).Tag.Get("json")] = t.Field(i).Tag.Get("doc")
}
return doc
}
func main() {
var stru resume
doc := findDoc(&stru)
fmt.Printf("name字段为:%s\n", doc["name"])
}
本文介绍Golang中结构体的标签使用方法及其通过反射机制获取标签的具体实现。通过一个简历结构体示例展示了如何利用反射获取结构体字段的JSON标签及对应的文档注释。
727

被折叠的 条评论
为什么被折叠?



