首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang gob错误地序列化数组

Golang gob错误地序列化数组
EN

Stack Overflow用户
提问于 2021-12-14 21:51:58
回答 2查看 177关注 0票数 -2

我像这样传递给gob数组

代码语言:javascript
复制
[]int{}

但是在接收端,我得到了这样的数组

代码语言:javascript
复制
[]int(nil)

这些数组之间有什么区别?为什么gob会像这样序列化空数组?

EN

回答 2

Stack Overflow用户

发布于 2021-12-14 22:13:08

为什么gob会像这样序列化空数组?

它在文档中:https://pkg.go.dev/encoding/gob

当一个切片被解码时,如果现有的片具有容量,该片将被扩展到适当的位置;如果没有,将分配一个新的数组。

从编码/gob的角度来看,[]int{}和[]int(nil)是不可微的。

更多信息:https://github.com/golang/go/issues/10905

没有通用的解决方法,您的代码只需要以一种特定的方式来处理这个问题,这取决于您要完成什么任务。如果你的目标是做一个深入的复制,有一些方法可以完全避免采摘。

似乎用不同的解决方案更好

果仁可能是讨论这件事的好地方。https://groups.google.com/forum/#!forum/golang-nuts

票数 4
EN

Stack Overflow用户

发布于 2021-12-14 22:08:00

[]int{} -空片

[]int(nil) -零切片

Go游乐场示例:https://go.dev/play/p/RQGa76vNI5G

关于这个gob行为的更多信息,您可以在本文中找到:https://github.com/golang/go/issues/10905

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70355969

复制
相关文章

相似问题

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