为了账号安全,请及时绑定邮箱和手机立即绑定

直接在源代码中使用 gobs 可以吗?

直接在源代码中使用 gobs 可以吗?

Go
犯罪嫌疑人X 2021-07-27 16:18:48
我想知道是否可以在源代码中直接使用 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
提交
取消
意见反馈 帮助中心 APP下载
官方微信