分享
golang入门--struct Tag的语法
a172742451 · · 7045 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
今天想用xorm连接数据库做一个项目,发现xorm的结构体和数据库表的映射关系的建立是通过struct 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 }
1 package main
2
3 import (
4 "fmt"
5 "reflect"
6 )
7
8 func main() {
9 type S struct {
10 F string `species:"gopher" color:"blue"`
11 }
12
13 s := S{}
14 st := reflect.TypeOf(s)
15 field := st.Field(0)
16 fmt.Println(field.Tag.Get("color"), field.Tag.Get("species"))
17
18 }有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信7045 次点击
下一篇:go channel总结
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
今天想用xorm连接数据库做一个项目,发现xorm的结构体和数据库表的映射关系的建立是通过struct 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 }
1 package main
2
3 import (
4 "fmt"
5 "reflect"
6 )
7
8 func main() {
9 type S struct {
10 F string `species:"gopher" color:"blue"`
11 }
12
13 s := S{}
14 st := reflect.TypeOf(s)
15 field := st.Field(0)
16 fmt.Println(field.Tag.Get("color"), field.Tag.Get("species"))
17
18 }