首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将嵌套结构保存到gob

将嵌套结构保存到gob
EN

Stack Overflow用户
提问于 2018-04-26 14:35:19
回答 1查看 1.7K关注 0票数 2

我试图将一个结构保存到gob中,但是该文件缺少嵌套类型的值。我可以自己保存矩阵类型,但是Network的gob数据不包括矩阵值。是否有一种方法可以保存这个嵌套的结构到gob,或者我必须将它分开呢?

代码语言:javascript
复制
type Matrix [][]float64
type Network struct {
     wih                Matrix
     who                Matrix
}

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-26 14:41:53

必须导出要编码的struct字段:

代码语言:javascript
复制
type Network struct {
     Wih Matrix
     Who Matrix
}

引用encoding/gob包文档

还支持结构、数组和切片。结构,编码和解码只导出字段

导出字段之后,它将工作。参见此示例:

代码语言:javascript
复制
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)

输出(在围棋游乐场上尝试):

代码语言:javascript
复制
{[[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]]}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50045735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档