在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
什么是tagTag是结构体中某个字段别名, 可以定义多个, 空格分隔 type Student struct { Name string `ak:"av" bk:"bv" ck:"cv"` } 使用空格来区分多个tag,所以格式要尤为注意 tag的作用tag相当于该字段的一个属性标签, 在Go语言中, 一些包通过tag来做相应的判断 举个例子, 比如我们有一个结构体 type Student struct { Name string } 然后我们将一个该结构体实例化一个 s1 s1 := Student{ Name: "s1", } 再将 s1 序列化 v, err := json.Marshal(s1) // json.Marshal方法,json序列化,返回值和报错信息 if err != nil { // 不为nil代表报错 fmt.Println(err) } fmt.Println(string(v)) // []byte转string, json 此时 string(v) 为 { "Name": "s1" } 因为在 Go 语言中, 结构体字段要想为外部所用就必须首字母大写, 但是如果这个 s1 是返回给前端的, 那每个字段都首字母大写就很怪, 此时我们可以给 Student 加tag解决 结构体修改为 type Student struct { Name string`json:"name"` } 序列化时, 会自己找到名为 json 的tag, 根据值来进行json后的赋值 因此 string(v) 为 { "name": "s1" } 常用tag记录jsonjson序列化或反序列化时字段的名称 dbsqlx模块中对应的数据库字段名 formgin框架中对应的前端的数据字段名 binding搭配 form 使用, 默认如果没查找到结构体中的某个字段则不报错值为空, binding为 required 代表没找到返回错误给前端
|
请发表评论