我认为这是使用Gob序列化的合法用例。然而,enc.Encode
返回了一个错误,因为Something
没有导出的字段。请注意,我只是序列化包含导出字段的Composed
而不是直接序列化Something
。
我找到的唯一解决方法是向Something
添加一个公开值Dummy
。这很丑陋。有更优雅的解决方案吗?
https://play.golang.org/p/0pL6BfBb78m
package main
import (
"bytes"
"encoding/gob"
)
type Something struct {
temp int
}
func (*Something) DoSomething() {}
type Composed struct {
Something
DataToSerialize int
}
func main() {
enc := gob.NewEncoder(&bytes.Buffer{})
err := enc.Encode(Composed{})
if err != nil {
panic(err)
}
}