为了账号安全,请及时绑定邮箱和手机立即绑定

您可以设置多个(不同的)标签具有相同的值吗?

您可以设置多个(不同的)标签具有相同的值吗?

Go
慕运维8079593 2023-07-04 16:51:45
对于我的一些项目,我必须使用viper包来使用配置。该包要求您添加 来mapstructure:"fieldname"正确识别和设置配置对象的字段,但我还必须添加其他标签用于其他目的,导致如下所示:type MyStruct struct {     MyField string `mapstructure:"myField" json:"myField" yaml:"myField"`}正如你所看到的,对我来说为每个标签编写是相当多余的tag:"myField",所以我想知道是否有任何方法可以将它们“捆绑”起来并减少冗长,就像这样mapstructure,json,yaml:"myField"或者这根本不可能,您必须单独指定每个标签?
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

结构标签是任意字符串文字。存储在结构标记中的数据可能看起来像您想要的任何内容,但如果您不遵循约定则必须编写自己的解析器/处理逻辑。如果遵循约定,您可以使用StructTag.Get()StructTag.Lookup()轻松获取标签值。

约定不支持“合并”多个标签,所以只需将它们全部写出来即可。

约定,引用自reflect.StructTag

按照惯例,标签字符串是可选的空格分隔的键:“值”对的串联。每个键都是一个非空字符串,由除空格 (U+0020 ' ')、引号 (U+0022 '"') 和冒号 (U+003A ':') 之外的非控制字符组成。每个值都用引号引起来使用 U+0022 '"' 字符和 Go 字符串文字语法。



查看完整回答
反对 回复 2023-07-04
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信