我正在按照本示例中的建議對地圖進行基本的序列化和反序列化。但我收到以下錯誤: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 關注
- 164 瀏覽
添加回答
舉報
0/150
提交
取消