今天想用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 }
有疑问加站长微信联系(非本文作者)