gob编码有什么作用?

Does gob encoding/decoding do anything ? In the example below , data looks the same before and after decoding. I am confused, please advise

data = "ABC"
    buf := new(bytes.Buffer)

    //glob encoding
    enc := gob.NewEncoder(buf)
    enc.Encode(data)
    fmt.Println("Encoded:", data)  //Encoded: ABC

    //glob decoding
    d := gob.NewDecoder(buf)
    d.Decode(data)
    fmt.Println("Decoded: ", data) //Decoded:  ABC

展开翻译

译文

gob编码/解码可以做什么吗? 在以下示例中,解码前后的数据看起来相同。 我很困惑,请告知</ p>

  data =“ ABC” 
buf:= new(bytes.Buffer)

//全局编码
enc:= gob .NewEncoder(buf)
enc.Encode(data)
fmt.Println(“ Encoded:”,data)//已编码:ABC

//全局解码
d:= gob.NewDecoder(buf)\ n d.Decode(data)
fmt.Println(“ Decoded:”,data)//已解码:ABC
</ code> </ pre>
</ div>

dsgs8208
dsgs8208 它编码为buf,这就是为什么您使用buf作为io.Writer创建编码器的原因
大约 3 年之前 回复

1个回答

Your comparison is wrong - comparing the data being encoded (data) to the result after being decoded (d.Decode(data)), will obviously lead you to the same result (if everything is working as expected).

The encoding itself will be presented in the underline bytes buffer (try to print the buffer itself - fmt.Println(buf.Bytes())).

Read more on the gob package

展开翻译

译文



您的比较是错误的-将要编码的数据( data </ code>)与解码后的结果(< code> d.Decode(data)</ code>),显然会导致您获得相同的结果(如果一切都按预期进行)。 </ p>

编码本身将显示在下划线字节缓冲区中(尝试打印缓冲区本身- fmt.Println(buf.Bytes())</ code>)。 / p>

详细了解 gob软件包 </ p>
</ div>

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐