GoLang获取struct的tag

GoLang获取struct的tag内容;beego的ORM中也通过tag来定义参数的。获取tag的内容是利用反射包来实现的。示例代码能清楚的看懂!

package main
import (
    "fmt"
    "reflect" // 这里引入reflect模块
)
type User struct {
    Name   string "user name" //这引号里面的就是tag
    Passwd string "user passsword"
}
func main() {
    user := &User{"chronos", "pass"}
    s := reflect.TypeOf(user).Elem() //通过反射获取type定义
    for i := 0; i < s.NumField(); i++ {
        fmt.Println(s.Field(i).Tag) //将tag输出出来
    }
}

Golang.org中reflect的示例代码

package main

import (
	"fmt"
	"reflect"
)

func main() {
	type S struct {
		F string `species:"gopher" color:"blue"`
	}

	s := S{}
	st := reflect.TypeOf(s)
	field := st.Field(0)
	fmt.Println(field.Tag.Get("color"), field.Tag.Get("species"))

}

转载请注明来源:新一 » GoLang获取struct的tag

赞 (2) 评论 (0) 分享 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址