我正在按照本示例中的建议对地图进行基本的序列化和反序列化。但我收到以下错误:panic: EOFgoroutine 1 [running]:main.load(0x81147e0, 0x1840a378) /home/naresh/Desktop/Work/GoEventHandler/test.go:39 +0x2cfmain.main() /home/naresh/Desktop/Work/GoEventHandler/test.go:16 +0xe5exit status 2谁能告诉我我在以下代码中做错了什么:package mainimport ( "fmt" "bytes" "encoding/gob")func main() { org := map[string]string{"hello": "world"} store(org) var loadedMap map[string]string load(&loadedMap) fmt.Println(loadedMap) }func store(data interface{}) { m := new(bytes.Buffer) enc := gob.NewEncoder(m) err := enc.Encode(data) if err != nil { panic(err) }}func load(e interface{}) { p := new(bytes.Buffer) dec := gob.NewDecoder(p) err := dec.Decode(e) if err != nil { panic(err) }}
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
解码是一个需要编码信息的过程,这些信息将在用于编码的缓冲区中。将其传递给解码器。
package main
import (
"bytes"
"encoding/gob"
"fmt"
)
func main() {
org := map[string]string{"hello": "world"}
buf := store(org)
loadedMap := make(map[string]string)
load(&loadedMap, buf)
fmt.Println(loadedMap)
}
func store(data interface{}) *bytes.Buffer {
m := new(bytes.Buffer)
enc := gob.NewEncoder(m)
err := enc.Encode(data)
if err != nil {
panic(err)
}
return m
}
func load(e interface{}, buf *bytes.Buffer) {
dec := gob.NewDecoder(buf)
err := dec.Decode(e)
if err != nil {
panic(err)
}
}
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消