代码之家  ›  专栏  ›  技术社区  ›  xaav

无法解组不支持的类型

  •  -1
  • xaav  · 技术社区  · 7 年前

    例如,在尝试封送XML时,请采用以下结构:

    type Example struct{
        A int
        B int
        C func() int  // Unmarshallable
    }
    

    C是不可伪造的,这对我来说很好;应该忽略它。但是,我发现最多的是ompitempty属性,它在这里无效。每次封送结构的尝试都失败了。

    我考虑的是:

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

    所有这些都不太理想,但似乎是最吸引人的。我愿意接受关于编组结构的任何其他建议,而忽略C。

    1 回复  |  直到 7 年前
        1
  •  5
  •   Tim Cooper    7 年前

    将“xml”结构域标记设置为 - documentation :

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

    ....

    type Example struct{
        A int
        B int
        C func() int `xml:"-"`
    }