网站换皮肤了
GoLang获取struct的tag
时间:2018-05-14 12:45 浏览:313

摘要

none

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"))
}

                 



如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。

本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。


来说两句吧