gob编码/解码会做什么吗?在下面的示例中,数据在解码之前和之后看起来相同。我很困惑,请指教
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
答案 0 :(得分:2)
您的比较是错误的 - 将正在编码的数据(data
)与解码后的结果(d.Decode(data)
)进行比较,显然会导致您得到相同的结果(如果所有内容都按预期工作) 。
编码本身将显示在下划线字节缓冲区中(尝试打印缓冲区本身 - fmt.Println(buf.Bytes())
)。
详细了解the gob package