golang中的反射解析结构体标签tag
package main import ( "fmt" "reflect" ) type resume struct { // 反射解析结构体标签tag Name string `info:"name" doc:"我的名字"` Sex string `info:"sex"` } // 方法一:传递结构体对象 func findTag(stru interface{}) { t := reflect.TypeOf(stru) for i := 0; i < t.NumField(); i++ { fmt.Println("info:", t.Field(i).Tag.Get("info"), "doc:", t.Field(i).Tag.Get("doc")) } } // 方法二:传递结构体指针 func findTag2(struc interface{}) { t := reflect.TypeOf(struc).Elem() for i := 0; i < t.NumField(); i++ { fmt.Printf("info: %s, doc: %s\n", t.Field(i).Tag.Get("info"), t.Field(i).Tag.Get("doc")) } } func main() { r := resume{Name: "mayanan", Sex: "男"} // 方法一:传递结构体对象 findTag(r) // 方法二:传递结构体指针 findTag2(&r) }