是否可以使用 Go 1.3 将 XML 解码为接口类型?
例如,如果结构看起来像这样(简化):
type Field interface { ... }
// DataField and ControlField satisfy Field interface
type DataField struct { ... } // <- One concrete type, with XML tags
type ControlField struct { ... } // <- Another concrete type, with XML tags
type Record struct {
Fields []Field // <- Field is an interface
}
...
// we want to decode into a record, e.g.
var record Record
decoder.DecodeElement(&record, &se)
...
据我所知,可以使用具体类型解码 XML,例如:
type Record struct {
ControlFields []ControlField // <- Using concrete type works
DataFields []DataField // <- Using concrete type works
}
但是接口类型失败了,尽管使用正确的 XML 标记对实现进行了注释。
有关可运行的示例,请参阅http://play.golang.org/p/tPlw4Y74tt或作为gist。
米脂
相关分类