登录
首页 >  Golang >  Go问答

无法解码 gob 数据

来源:Golang技术栈

时间:2023-04-13 22:14:00 395浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《无法解码 gob 数据》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

我有一个简单的结构类型,我正在编码。但是,我在解码数据时做错了什么。每次我尝试解码它时,我都会收到 EOF 恐慌错误。

//将地图编码为gob。将 gob 保存到磁盘。从磁盘读取 gob。将采空区解码为另一张地图。包主

import (
        "fmt"
        "encoding/gob"
        "bytes"
        "io/ioutil"
)

type hashinfo struct {
  fname string 
  hash string
}



func main() {

        thing := []hashinfo{
            {"rahul","test"},
            {"boya","test2"},
        }

        m := new(bytes.Buffer) 
        enc := gob.NewEncoder(m)
        enc.Encode(thing)
        err := ioutil.WriteFile("gob_data", m.Bytes(), 0600) 
        if err != nil {
                panic(err)
        }
        fmt.Printf("just saved gob with %v\n", thing)


        n,err := ioutil.ReadFile("gob_data")
        if err != nil {
                fmt.Printf("cannot read file")
                panic(err)
        } 
        p := bytes.NewBuffer(n) 
        dec := gob.NewDecoder(p)
        e := []hashinfo{}
        err = dec.Decode(&e)
        if err != nil {
                fmt.Printf("cannot decode")
                panic(err)
        } 
        fmt.Printf("just read gob from file and it's showing: %v\n", e)
}

我创建了 e := []hashinfo{} 对象以解码 gobject。我在那里做错了吗?

正确答案

您的字段type hashinfo未导出,也无法反序列化。尝试使用FnameHash

好了,本文到此结束,带大家了解了《无法解码 gob 数据》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>