golang struct的tag
Go的struct声明允许字段附带Tag来对字段做一些标记。
Tag不仅仅是一个字符串那么简单,因为其主要用于反射场景,reflect包中提供了操作Tag的方法,所以Tag写法也要遵循一定的规则。
1.Tag规则
Tag本身是一个字符串,但字符串中却是:以空格分隔的 key:value 对。
key: 必须是非空字符串,字符串不能包含控制字符、空格、引号、冒号。
value: 以双引号标记的字符串
注意:冒号前后不能有空格
如下代码所示,如此写没有实际意义,仅用于说明Tag规则
type Server struct {
ServerName string `key1:"value1" key11:"value11"`
ServerIP string `key2:"value2"`
}
上述代码ServerName字段的Tag包含两个key-value对。ServerIP字段的Tag只包含一个key-value对。
2.Tag是Struct的一部分
前面说过,Tag只有在反射场景中才有用,而反射包中提供了操作T

Go的struct字段可以使用tag进行标记,tag主要用于反射场景。Tag遵循特定规则,如key:value形式,无空格。它们是struct的一部分,在反射包中通过StructTag获取。tag的意义在于动态赋值时提供依据,如json解析、ORM映射等。了解并利用tag特性有助于自定义数据处理。
最低0.47元/天 解锁文章
670

被折叠的 条评论
为什么被折叠?



