-1

在我的 Go 程序中,我使用 gob 编码 []byte 数据

buf := new(bytes.Buffer)
    enc := gob.NewEncoder(buf)
        //data is []byte
        buf.Reset()
        enc.Encode(data)

但是当我试图解码时得到' gob decoder试图解码成非指针'

buf := new(bytes.Buffer)
    d := gob.NewDecoder(buf)
        d.Decode(data)
        log.Printf("%s", d)
4

1 回答 1

2

Gob 要求你传递一个指针来解码。

在你的情况下,你会这样做:

    d.Decode(&data)

原因是,它可能必须修改切片(即:使其更大,以适应解码的数组)

于 2017-03-05T00:07:11.117 回答