无法解组不受支持的类型

xaa*_*aav -1 xml go

例如,在尝试编组XML时,请使用以下结构:

type Example struct{
    A int
    B int
    C func() int  // Unmarshallable
}
Run Code Online (Sandbox Code Playgroud)

C是不合时宜的,这对我很好; 它应该被忽略.但是,我发现的最多的是omitempty属性,这里无效.每次编组结构的尝试都失败了.

我考虑的是以下内容:

  1. 为函数创建一个全新的类型并附加MarshalXML方法.
  2. 在编组之前创建一个新结构并手动将每个字段复制到新结构中.
  3. 将MarshalXML方法附加到Example结构本身.
  4. 使C成为未导出的属性,然后将其设置在其各自的包中.

所有这些都不太理想,但4)似乎是最吸引人的.我对任何其他关于编组结构的建议持开放态度,而忽略了C.

其中任何一个都不太理想,因为它离开了

Tim*_*per 5

设置"xml"结构域字段标记-将阻止字段被封送,如文档中所述:

struct的XML元素包含struct的每个导出字段的封送元素,但有以下例外:

....

  • 标记为" - "的字段被省略.
type Example struct{
    A int
    B int
    C func() int `xml:"-"`
}
Run Code Online (Sandbox Code Playgroud)