gob相关内容

在 Go 中写入客户端 UDP 套接字

我正在为使用 Go 语言的 UDP 套接字进行客户端/服务器通信寻找一个好的解决方案. 我在 Internet 上找到的示例向我展示了如何将数据发送到服务器,但没有教如何将它们发送回客户端. 为了演示,我的程序执行以下操作: 我的客户端程序在 4444 端口上创建一个套接字,如下所示: con, err := net.Dial("udp", "127.0.0.1:4444") ..
发布时间:2022-01-22 17:11:16 其他开发

结构体到磁盘的高效 Go 序列化

我的任务是将 C++ 代码替换为 Go,而我对 Go API 还是很陌生.我正在使用 gob 将数百个键/值条目编码到磁盘页面,但是 gob 编码有太多不需要的膨胀. 包主进口 (“字节"“编码/gob"“fmt")输入结构体{钥匙串瓦尔字符串}功能主(){var buf bytes.Bufferenc := gob.NewEncoder(&buf)e := 条目 { "k1", "v1" }e ..
发布时间:2021-12-11 22:59:07 其他开发

深度复制Golang,JSON和Gob中的对象的更快方法

我正在使用go 1.9.我想将对象的值复制到另一个对象中.我尝试用encoding/gob和encoding/json做到这一点.但是gob编码比json编码花费更多的时间.我看到了其他一些问题,例如这,并且它们建议gob编码应该更快.但是我看到了完全相反的行为.有人可以告诉我我做错了什么吗?还是有比这两个更好,更快的方法来进行深度复制?我对象的结构很复杂且嵌套. 测试代码: pack ..
发布时间:2021-02-13 20:02:30 其他开发

在不知道具体类型的情况下解码gob输出

我正在使用gob将结构序列化到磁盘.有问题的结构包含一个接口字段,因此具体类型需要使用gob.Register(...)注册. 这里的难题是,进行gob-ing的库应该对所使用的具体类型一无所知.我希望即使调用者定义了自己的接口实现,也可以进行序列化. 我可以通过动态注册类型来成功编码数据(请参见下面的简单示例),但是在尝试重新读取数据时,gob拒绝接受未注册的类型.令人沮丧的是,因为 ..
发布时间:2020-07-23 02:44:25 其他开发

编码/目标和编码/json之间的区别

我正在Go中编写一个应用程序,该应用程序使用编码/目标在节点之间通过UDP发送结构和切片.它工作正常,但我注意到encoding/json也具有类似的API.搜索并找到此信息( https://golang.org/pkg/encoding/): gob软件包gob管理gobs流-交换二进制值 在编码器(发送器)和解码器(接收器)之间. json包json实现JSON中的编码和解码,如 R ..
发布时间:2020-07-23 02:44:21 其他开发

Gob无法使用nil指针值编码地图

当值之一为nil时,我尝试对指向指针的映射进行编码时,Gob的Encode返回错误.这似乎与文档相矛盾(但是我可能会误解其含义): 在切片和数组以及映射中,即使所有元素均为零,也将传输所有元素,即使是零值元素. 代码: package main import ( "bytes" "encoding/gob" ) type Dog struct { Na ..
发布时间:2020-05-28 23:19:37 其他开发

在Golang中快速复制对象的更快方法

我正在使用go 1.9.我想将对象的值复制到另一个对象中.我尝试用encoding/gob和encoding/json做到这一点.但是gob编码比json编码花费更多的时间.我看到了其他一些问题,例如这,并且它们建议gob编码应该更快.但是我看到了完全相反的行为.有人可以告诉我我做错了什么吗?还是有比这两个更好,更快的方法来进行深度复制?我对象的结构很复杂且嵌套. 测试代码: pack ..
发布时间:2019-11-23 21:15:33 其他开发

在磁盘上的文件中附加golang gob

我试图将 gob 编码的数据作为简单的数据存储保存在磁盘上的文件中。但是,当我下次打开它时,gob编码器会忽略文件中已有的任何数据,并在发送数据之前重新发送已发送格式的定义。看到 gob.Encoder 需要一个 io.Writer ,而不是 io.ReadWriter ,这是有道理的。编码器不知道文件中的内容,因为它无法读取它。 然而,这非常低效。由于gob类型的id可能已经改变,因此每次 ..
发布时间:2018-05-02 18:39:25 其他开发语言

使用gob打包递归定义的结构

我主要使用Python,但我正在玩Go。我写了以下内容来完成python中非常简单的操作,我希望它也可以在Go中完成。 包主 $ b $导入( “字节” “encoding / gob” “fmt” “io / ioutil” ) 类型结构{ 文本字符串 用户*用户 } 类型用户结构{ 文本字符串 订单*订单 } func main(){ o:=订单{} u:=用户{} ..
发布时间:2018-05-02 18:20:00 其他开发语言

golang中encoding / gob和encoding / json之间的区别

我正在编写一个GO应用程序,它使用编码/ gob在节点之间通过UDP发送结构和切片。它工作正常,但我注意到,编码/ JSON也有类似的API。搜索并找到这些信息( https://golang.org/pkg/encoding/ ): p> 包gob管理gobs流 - 二进制值在编码器(发送器)和解码器(接收器)之间交换 。 > json包json实现了 RFC 4627中定义的JSO ..
发布时间:2018-05-02 18:13:38 其他开发语言

在Go中写入客户端UDP套接字

我在互联网上找到的例子向我展示了如何在Go语言中使用UDP套接字进行客户端/服务器通信。发送数据到服务器,但他们没有教会如何将它们发送回客户端。 为了演示,我的程序执行以下操作: 我的客户端程序在4444端口上创建一个套接字,如下所示: con,err := net.Dial(“udp”,“127.0.0.1:4444”) 我发送了一个字符串和服务器的本地地址, ..
发布时间:2018-05-02 18:11:54 其他开发语言

在Go编程中无法通过TCP发送gob数据

我有一个客户端服务器应用程序,使用TCP连接 客户端: type Q struct { sum int64 } type P struct { M,N int64 } func main(){ ... //读取M和N ... tcpAddr,err:= net.ResolveTCPAddr(“tcp4”,service) ... var ..
发布时间:2018-05-02 17:49:09 其他开发语言

编码/ gob确定性?

我们可以期待两个Go对象x,y,使得x等于y(假设接口和映射,结构和数组没有任何技巧),gob_encode(x)和gob_encode(y)的输出将始终为相同? 解决方案 只要“完成工作”,您就不应该在乎。但是目前的 编码/ gob 实现是确定性。但是(继续阅读)! 因为: 自我描述。流中的每个数据项前都有一个类型的规范,用一小组预定义的类型表示。 意味着如果您第一次对 ..
发布时间:2018-05-02 17:40:25 其他开发语言

高效的Go序列化结构到磁盘

我的任务是将C ++代码替换为Go,而我对Go API非常陌生。我正在使用gob将数百个键/值条目编码到磁盘页面,但gob编码有太多不需要的膨胀。 package main import( “bytes” “encoding / gob“ ”fmt“ ) type输入结构{ 键字符串 Val字符串 } func main( ){ var buf bytes.Buffe ..
发布时间:2018-05-02 17:09:22 其他开发语言

将地图键/值存储在持久性文件中

我将创建一个或多或少的结构: type FileState struct { LastModified int64 哈希字符串 路径字符串 } 我想写这些值到一个文件,并在随后的调用中读取它们。我的初始计划是使用键(Path)将它们读入地图并查找值(Hash和LastModified)。在Go中是否有光滑的方式? 如果没有,你可以推荐什么文件格式?在以前的项 ..
发布时间:2017-05-21 20:17:19 其他开发