无法解组不支持的类型
短信预约 -IT技能 免费直播动态提醒
小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《无法解组不支持的类型》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!
问题内容例如,当尝试编组 xml 时,采用如下结构:
type Example struct{
A int
B int
C func() int // Unmarshallable
}
c 是不可编组的,这对我来说没问题;它应该被忽略。然而,我发现最多的是 omitempty 属性,它在这里无效。每次封送该结构的尝试都会失败。
我考虑的是以下内容:
- 为函数创建一个全新的类型并附加 marshalxml 方法。
- 创建一个新结构并在编组之前手动将每个字段复制到新结构中。
- 将 marshalxml 方法附加到示例结构本身。
- 使 c 成为未导出的属性,然后将其设置在其各自的包内。
所有这些都不太理想,但 4) 似乎是最吸引人的。我愿意接受任何其他有关编组结构的建议,但忽略 c。
其中任何一个都不太理想,因为它会留下
解决方案
将“xml”结构字段标记设置为 -
将阻止对该字段进行封送,如 documentation 中所述:
结构的 xml 元素包含该结构的每个导出字段的编组元素,但以下情况除外:
...
- 省略带有标签“-”的字段。
type Example struct{
A int
B int
C func() int `xml:"-"`
}
以上就是《无法解组不支持的类型》的详细内容,更多关于的资料请关注编程网公众号!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341