我想知道是否可以在源代码中直接使用 gob 编码数据(例如在函数中)。原因是通过不必访问磁盘来获取 gob 文件来提高性能。我知道 memcached、redis 和朋友。我不需要 TTL 或任何其他花哨的功能。只是在内存中映射。数据将在“设置”/构建过程中的源代码中进行编码和转储,以便在运行时只需要对其进行“解码”。go 应用程序基本上将用作小型只读嵌入式数据库。我可以使用 json(基本上用原始 json 声明一个 var)来做到这一点,但我想会有性能损失,所以我想知道 gob 是否可能。我尝试了不同的东西,但我无法让它工作,因为基本上我不知道如何定义 gob var (byte, [bytes] ?? ) 并且解码器似乎期望 io.Reader 所以在消费之前一整天,我决定问你们,至少,如果有可能的话。悲惨的尝试:var test stringtest = "hello"p := new(bytes.Buffer)e := gob.NewEncoder(p)e.Encode(test)ers := ioutil.WriteFile("test.gob", p.Bytes(), 0600)if ers != nil { panic(ers)}现在我想使用 test.gob 并将其添加到一个函数中。如我所见,test.gob 的源代码如下^H^L^@^Ehellovar test stringvar b bytes.Bufferb = byte("^H^L^@^Ehello")de := gob.NewDecoder(b.Bytes())er := de.Decode(&test)if er != nil { fmt.Printf("cannot decode") panic(er)}fmt.Fprintf(w, test)
2 回答
- 2 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消