golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据

系统管理员 2021-09-03 03:26 597阅读 0赞

goLang获取struct的tag内容;beego的ORM中也通过tag来定义参数的。

获取tag的内容是利用反射包来实现的。示例代码如下:

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

golang.org中reflect的示例代码

  1. package main
  2. import (
  3. "fmt"
  4. "reflect"
  5. )
  6. func main() {
  7. type S struct {
  8. F string `species:"gopher" color:"blue"`
  9. }
  10. s := S{}
  11. st := reflect.TypeOf(s)
  12. field := st.Field(0)
  13. fmt.Println(field.Tag.Get("color"), field.Tag.Get("species"))
  14. }

发表评论

表情:
评论列表 (有 0 条评论,597人围观)

还没有评论,来说两句吧...

相关阅读