结构体中的标签
package main import ( "fmt" "reflect" ) func main() { // 如何获取结构体标签? type Person struct { name string "姓名" age int32 "年龄" blog string "博客" } p1 := Person{name: "马亚南", age: 28, blog: "http://www.mayanan.cn"} p1Type := reflect.TypeOf(p1) // 方式一: field1 := p1Type.Field(0) // 通过索引获取 fmt.Println(field1.Tag, field1.Name) // 姓名 name // 方式二: // blog存在时,_为true,blog不存在时,_为false field2, _ := p1Type.FieldByName("blog") // 通过名称获取 fmt.Println(field2.Tag, field2.Name) // 博客 blog // 循环获取结构体中的所有字段名和标签 fieldNum := p1Type.NumField() // 获取字段总数 for index := 0; index < fieldNum; index++ { field := p1Type.Field(index) // 通过索引获取 fmt.Println(field.Tag, field.Name) } }