问题标签 [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.
serialization - 如何序列化具有未导出字段的复杂接口?
我需要序列化一些复杂的接口(template.Template)。它有许多未导出的字段,gob 不想使用它们。有什么建议么?
PS 实际上,我试图将解析后的模板放到 App Engine 上的内存缓存中。
map - 将映射键/值存储在持久文件中
我将创建一个或多或少的结构:
我想将这些值写入文件并在后续调用中读取它们。我最初的计划是将它们读入地图并使用键(路径)查找值(哈希和 LastModified)。在 Go 中有一种巧妙的方法吗?
如果没有,您可以推荐什么文件格式?我在以前的项目中阅读并尝试了一些键/值文件存储,但没有使用 Go。现在,我的要求可能相当简单,因此大型数据库服务器系统将是矫枉过正。我只想要一些我可以快速、轻松、便携地写入和读取的东西(Windows、Mac、Linux)。因为我必须部署在多个平台上,所以我试图将我的 non-go 依赖项保持在最低限度。
我考虑过 XML、CSV、JSON。我简要地查看了 Go 中的 gob 包,并注意到 Go 包仪表板上有一个 BSON 包,但我不确定这些是否适用。
我在这里的主要目标是快速启动和运行,这意味着我需要编写的代码量最少并且易于部署。
tcp - 在 Go 编程中无法通过 TCP 发送 gob 数据
我有一个客户端服务器应用程序,使用 TCP 连接
客户:
服务器:
serve 上的结果是 {0, 0} 因为我不知道如何bytes.Buffer
从net.Conn
.
有没有办法通过 TCP 发送 gob 变量?
如果属实,怎么办?还是有其他方法可以通过 TCP 发送号码?
任何帮助或示例代码将不胜感激。
go - Go:通过管道发送 gob 挂起 - 更新:进程外 http.ResponseWriter 正在阻塞
我正在编写一个网络服务器,它将请求分发给 Go 中的进程外程序。我正在使用 gob 通过管道发送 ResponseWriter 和 Request 数据类型。
问题是接收 gob 时外部进程挂起。
更新gob 现在已成功发送到外部进程,但现在外部进程阻塞fmt.Fprintf(request.Resp, "Hello")
并冻结在那里。
dispreq.go
调度员.go
你好.go
go - 使用 Gob 解码和编码接口{}
我正在尝试对包含 Interface{} 作为字段的结构进行解码和编码。
存在的问题是,编码工作正常,但如果我尝试将数据解码为data
值 get { <nil>}
。
如果我更改Data interface{}
为,它实际上可以工作,Data substring
但这对我来说不是解决方案,因为我想将查询结果缓存到根据查询具有不同类型的数据库中。(例如Users
或Cookies
)
最小的工作示例
来源
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]
解码:{}
go - 未注册接口的名称
我正在尝试通过 RPC 发送一个具体的实现。RPC 方法需要一个接口。
相关的代码片段是:
包装内node
:
包装内main
:
我已经用 gob 注册了 node.Approach。但是在运行我收到的主程序时
关于我做错了什么的任何想法?或者如何注册名字?
go - GobEncoder 通过 RPC 传递匿名函数
我正在尝试构建一个系统,该系统将在多台机器上执行一个函数,通过 RPC 匿名地将函数传递给每个工作机器(a la MapReduce)以在某些数据子集上执行。Gob 不支持编码函数,尽管 GobEncoder 的文档说“实现 GobEncoder 和 GobDecoder 的类型可以完全控制其数据的表示,因此可能包含诸如私有字段、通道和函数之类的东西,它们不是通常可以在采空区流中传播”,所以这似乎是可能的。
这可能如何工作的任何例子?我不太了解应该如何使用 Gob 进行这种编码/解码。
types - Golang gob:类型未注册接口:
所以我有一个类型String
是string
定义的别名:
type String string
然后我对它应用以下方法:
然后我尝试发送一个包含String
over rpc 的结构并得到以下错误:
我没有定义任何同名的接口,那为什么gob会认为这是一个接口呢?
我遇到了类似类型的相同错误,但使用gob.Register(otherType{})
. 这不适用于String
,大概是因为string
它不是接口。我有点新手,所以请解释发生了什么。
go - gob:类型未注册接口:map[string]interface {}
gob
编码失败map[string]interface{}
http://play.golang.org/p/Si4hd8I0JE
map[string]interface{}
是否可以在 gob中编码?我可以用 JSON 对其进行编码
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