3

gob をファイルに書き込む必要がある go プログラムを作成しています。.String() メソッドを使用してゴブを文字列に変換しました。

var network bytes.Buffer
encoder := gob.NewEncoder(&network)

_ = encoder.Encode(valueToEncode)

gobString := network.String()

次に、ゴブをファイルに書き込み、後で取得してこのプログラムに送信します。

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: エンコードされた符号なし整数が範囲外です

問題は、デコーダ プログラムの最初の 2 行にあると思います。では、ゴブを正しくデコードするには何を入れればよいでしょうか?

編集: 私が欲しいのは、gobString の .UnString() メソッドです。どうすればそれを達成できますか?

4

1 に答える 1