问题标签 [gob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3112 浏览

serialization - 如何序列化具有未导出字段的复杂接口?

我需要序列化一些复杂的接口(template.Template)。它有许多未导出的字段,gob 不想使用它们。有什么建议么?

PS 实际上,我试图将解析后的模板放到 App Engine 上的内存缓存中。

0 投票
3 回答
6504 浏览

map - 将映射键/值存储在持久文件中

我将创建一个或多或少的结构:

我想将这些值写入文件并在后续调用中读取它们。我最初的计划是将它们读入地图并使用键(路径)查找值(哈希和 LastModified)。在 Go 中有一种巧妙的方法吗?

如果没有,您可以推荐什么文件格式?我在以前的项目中阅读并尝试了一些键/值文件存储,但没有使用 Go。现在,我的要求可能相当简单,因此大型数据库服务器系统将是矫枉过正。我只想要一些我可以快速、轻松、便携地写入和读取的东西(Windows、Mac、Linux)。因为我必须部署在多个平台上,所以我试图将我的 non-go 依赖项保持在最低限度。

我考虑过 XML、CSV、JSON。我简要地查看了 Go 中的 gob 包,并注意到 Go 包仪表板上有一个 BSON 包,但我不确定这些是否适用。

我在这里的主要目标是快速启动和运行,这意味着我需要编写的代码量最少并且易于部署。

0 投票
1 回答
11715 浏览

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

我有一个客户端服务器应用程序,使用 TCP 连接

客户:

服务器:

serve 上的结果是 {0, 0} 因为我不知道如何bytes.Buffernet.Conn.

有没有办法通过 TCP 发送 gob 变量?

如果属实,怎么办?还是有其他方法可以通过 TCP 发送号码?

任何帮助或示例代码将不胜感激。

0 投票
1 回答
647 浏览

go - Go:通过管道发送 gob 挂起 - 更新:进程外 http.ResponseWriter 正在阻塞

我正在编写一个网络服务器,它将请求分发给 Go 中的进程外程序。我正在使用 gob 通过管道发送 ResponseWriter 和 Request 数据类型。

问题是接收 gob 时外部进程挂起。

更新gob 现在已成功发送到外部进程,但现在外部进程阻塞fmt.Fprintf(request.Resp, "Hello")并冻结在那里。

dispreq.go

调度员.go

你好.go

0 投票
2 回答
10399 浏览

go - 使用 Gob 解码和编码接口{}

我正在尝试对包含 Interface{} 作为字段的结构进行解码和编码。

存在的问题是,编码工作正常,但如果我尝试将数据解码为data值 get { <nil>}

如果我更改Data interface{}为,它实际上可以工作,Data substring但这对我来说不是解决方案,因为我想将查询结果缓存到根据查询具有不同类型的数据库中。(例如UsersCookies

最小的工作示例

来源

http://play.golang.org/p/aX7MIfqrWl

输出

预期产出

编码: [37 255 129 3 1 1 4 68 97 116 97 1 255 130 0 1 2 1 4 78 97 109 101 1 12 0 1 4 68 97 116 97 1 255 132 0 0 0 29 255 781 3 7 1 1 98 84 121 112 101 1 255 132 0 1 1 1 3 70 111 111 1 12 0 0 0 19 255 130 1 6 70 111 111 66 97 114 1 1 4 84 101 115 116 0 0]

解码:{FooBar {Test}}

当前结果

编码: [37 255 129 3 1 1 4 68 97 116 97 1 255 130 0 1 2 1 4 78 97 109 101 1 12 0 1 4 68 97 116 97 1 255 132 0 0 0 29 255 781 3 7 1 1 98 84 121 112 101 1 255 132 0 1 1 1 3 70 111 111 1 12 0 0 0 19 255 130 1 6 70 111 111 66 97 114 1 1 4 84 101 115 116 0 0]

解码:{}

0 投票
2 回答
2933 浏览

go - 未注册接口的名称

我正在尝试通过 RPC 发送一个具体的实现。RPC 方法需要一个接口。

相关的代码片段是:

包装内node

包装内main

我已经用 gob 注册了 node.Approach。但是在运行我收到的主程序时

关于我做错了什么的任何想法?或者如何注册名字?

0 投票
2 回答
1447 浏览

go - GobEncoder 通过 RPC 传递匿名函数

我正在尝试构建一个系统,该系统将在多台机器上执行一个函数,通过 RPC 匿名地将函数传递给每个工作机器(a la MapReduce)以在某些数据子集上执行。Gob 不支持编码函数,尽管 GobEncoder 的文档说“实现 GobEncoder 和 GobDecoder 的类型可以完全控制其数据的表示,因此可能包含诸如私有字段、通道和函数之类的东西,它们不是通常可以在采空区流中传播”,所以这似乎是可能的。

这可能如何工作的任何例子?我不太了解应该如何使用 Gob 进行这种编码/解码。

0 投票
2 回答
5541 浏览

types - Golang gob:类型未注册接口:

所以我有一个类型Stringstring定义的别名:

type String string

然后我对它应用以下方法:

然后我尝试发送一个包含Stringover rpc 的结构并得到以下错误:

我没有定义任何同名的接口,那为什么gob会认为这是一个接口呢?

我遇到了类似类型的相同错误,但使用gob.Register(otherType{}). 这不适用于String,大概是因为string它不是接口。我有点新手,所以请解释发生了什么。

0 投票
2 回答
18092 浏览

go - gob:类型未注册接口:map[string]interface {}

gob编码失败map[string]interface{}

http://play.golang.org/p/Si4hd8I0JE

map[string]interface{}是否可以在 gob中编码?我可以用 JSON 对其进行编码

0 投票
2 回答
264 浏览

performance - 直接在源码中使用gobs,可以吗?

我想知道是否可以直接在源代码中(例如在函数中)使用 gob 编码数据。原因是通过不必访问磁盘来获取 gob 文件来提高性能。我知道 memcached、redis 和朋友。我不需要 TTL 或任何其他花哨的功能。只是在内存中映射。数据将在“设置”/构建过程中被编码并转储到源代码中,以便在运行时只需要“解码”它。

Go 应用程序基本上将用作小型只读嵌入式数据库。我可以使用 json 来做到这一点(基本上用原始 json 声明一个 var),但我想会有性能损失,所以我想知道 gob 是否有可能。

我尝试了不同的东西,但我不能让它工作,因为基本上我不知道如何定义 gob var (byte, [bytes] ?? ) 并且解码器似乎期待一个 io.Reader 所以在消费之前在这一天里,我决定至少问问你们这些家伙是否可以这样做。

悲惨的尝试:

现在我想把 test.gob 添加到一个函数中。如我所见, test.gob 的源代码如下^H^L^@^Ehello