我试图将一个结构保存到gob中,但是该文件缺少嵌套类型的值。我可以自己保存矩阵类型,但是Network的gob数据不包括矩阵值。是否有一种方法可以保存这个嵌套的结构到gob,或者我必须将它分开呢?
type Matrix [][]float64
type Network struct {
wih Matrix
who Matrix
}谢谢!
发布于 2018-04-26 14:41:53
必须导出要编码的struct字段:
type Network struct {
Wih Matrix
Who Matrix
}引用encoding/gob包文档
还支持结构、数组和切片。结构,编码和解码只导出字段。
导出字段之后,它将工作。参见此示例:
n := Network{
Wih: Matrix{{1.1, 2.2}, {3.3, 4.4}},
Who: Matrix{{5.5, 6.6}, {7.7, 8.8}},
}
fmt.Println(n)
buf := &bytes.Buffer{}
if err := gob.NewEncoder(buf).Encode(n); err != nil {
panic(err)
}
var n2 Network
if err := gob.NewDecoder(buf).Decode(&n2); err != nil {
panic(n2)
}
fmt.Println(n2)输出(在围棋游乐场上尝试):
{[[1.1 2.2] [3.3 4.4]] [[5.5 6.6] [7.7 8.8]]}
{[[1.1 2.2] [3.3 4.4]] [[5.5 6.6] [7.7 8.8]]}https://stackoverflow.com/questions/50045735
复制相似问题