go - 将嵌套结构保存到 gob
问题描述
我正在尝试将结构保存到 gob,但该文件缺少嵌套类型的值。我可以自己保存 Matrix 类型,但 Network 结构的 gob 数据不包括 Matrix 值。有没有办法将这个嵌套结构保存到 gob 或者我必须拆分它?
type Matrix [][]float64
type Network struct {
wih Matrix
who Matrix
}
谢谢!
解决方案
您必须导出要编码的结构字段:
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)
输出(在Go Playground上试试):
{[[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]]}
推荐阅读
- .net - 在安装程序项目中使用自定义操作提交 .exe 失败
- python-3.x - 如何在 Odoo 11 中覆盖自定义模型的更新功能
- php - php rest API 发布方法
- python - Pandas:如何按列条件计算组中的时间差
- c# - Asp.net核心架构开发我心中的一些问题
- css - 如何编辑 webpack 以在 React 应用程序中使用 SCSS?
- java - spring org.springframework.core.io.UrlResource 不支持 https 资源
- uml - 零件和端口的含义?
- amazon-web-services - AWS EMR 上的 Apache Spark 随机森林分类失败并导致错误:分配失败、HeartbeatReceiver、YarnClusterScheduler 等
- java - 放置LinkHashMap时如何在JsonArray中保留订单元素