码迷,mamicode.com
首页 > 其他好文 > 详细

GoLang struct的tag

时间:2017-09-28 14:03:51      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:输出   lan   word   ref   top   stat   pack   imp   name   

GoLang获取struct的tag内容,  这是tag,可以被reflect API访问;beego的ORM中也通过tag来定义参数的。

获取tag的内容是利用反射包来实现的。示例代码能清楚的看懂!

 

package main

import (
"fmt"
"reflect"
)

type Job struct {
AlarmStatus *string `json:"alarm_status" name:"alarm_status"`
CPUTopology string `json:"cpu_topology" name:"cpu_topology"`
}


func main(){
a := "abc"
s := Job{&a,"hello"}
st := reflect.TypeOf(s)
field := st.Field(1)
fmt.Println(field.Tag.Get("json"), field.Tag.Get("name"))
}

 

 

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输出出来
}
}

 

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

标签:输出   lan   word   ref   top   stat   pack   imp   name   

原文地址:http://www.cnblogs.com/WayneZeng/p/7606126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!