在我的 Go 程序中,我用 gob 编码 []byte 数据
buf := new(bytes.Buffer)
enc := gob.NewEncoder(buf)
//data is []byte
buf.Reset()
enc.Encode(data)
但是当我尝试解码时得到'gob decoder attempted to decode into a non-pointer'
buf := new(bytes.Buffer)
d := gob.NewDecoder(buf)
d.Decode(data)
log.Printf("%s", d)
最佳答案
Gob 需要你传递一个指针来解码。
在你的情况下,你会这样做:
d.Decode(&data)
原因是,它可能必须修改 slice (即:使其更大,以适应解码后的数组)
关于gob 解码器试图解码成非指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42598913/