Golang的结构体标签Struct Tag
Struct Tag
在Golang中,结构体标记(Struct Tag),也称为结构体注释(Struct Annotation),是一种对Go结构体中的字段进行元数据附加的机制。这些标记是用反引号(`)包裹起来的键值对,可以在运行时通过反射机制获取并处理。
结构体标记使用key:"value"的格式来定义,其中key是标记的名称,value是该标记的值。一个结构体字段可以有多个标记,每个标记之间使用空格分隔。
使用方法和代码示例
看一个例子:
-
type User struct {
-
Name string `json:"name"`
-
Age int `json:"age"`
-
}
注意如上结构体中反引号引起来的内容就是Golang中的Struct Tag,接下来看一下它的作用,如果输出json格式
-
u := &User{Name: "xiaohong", Age: "18"}
-
j, _ := json.Marshal(u)
-
fmt.Println(string(j))
输出如下内容
{"name": "xiaohong","age": 18}
如果去掉StructTag会输出什么呢,看如下例子:
-
type User struct {
-
Name string
-
Age int
-
}
-
u := &User{Name: "xiaohong", Age: "18"}
-
j, _ := json.Marshal(u)
-
fmt.Println(string(j))
输出如下内容
{"Name": "xiaohong","Age": 18}
可以看出加上Struct Tag后,输出的内容跟着发生了变化。所以Struct Tag通常是用来在将struct编码转换的过程中提供一些转换规则信息.
一般来讲,Tag 都是以 key:"value" 键值对的形式,如果有多个键值对,用空格分隔:
-
type User struct {
-
Name string `json:"name" xml:"name"`
-
}
key 一般指的是要使用的包名,比如这里的json表示这个Name字段会被 ```encoding/json```包使用和处理。
Struct Tag可以使用reflect包中的方法来获取, Struct Tag是string基本类型的别名:type StructTag string,约定俗成的规则是以 key:"value" 这样的键值对。
-
// 获取tag中的内容
-
u := &User{Name: "xiaohong", Age: "18"}
-
t := reflect.TypeOf(u)
-
field := t.Elem().Field(0)
-
fmt.Println(field.Tag.Get("json"))
输出内容如下
name
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibckjc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22