我正在编写一个Go程序,需要将一个gob写入文件。我使用.String()方法将gob转换为字符串。
var network bytes.Buffer
encoder := gob.NewEncoder(&network)
_ = encoder.Encode(valueToEncode)
gobString := network.String()
然后我将把 Gob 写入文件,稍后检索并发送到此程序:
var filebytes = []byte(file) //i think that these two lines are the issue
network := bytes.NewBuffer(filebytes)
decoder := gob.NewDecoder(network)
var decoded interface{}
_ := decoder.Decode(&decoded)
但是当我运行这个程序时,它会给出以下错误:
gob: 编码的无符号整数超出范围
我认为问题出在解码程序的前两行。那么我应该放什么来正确解码gob呢?
编辑: 我想要一个用于gobString的.UnString()方法。我该如何实现?
string
值解码为interface{}
时会产生另一个错误:本地接口类型*interface {}只能从远程接口类型解码;接收到的具体类型为string
,因此请提供一个[mcve]以产生您的错误。 - icza