2017-03-04 84 views
-2

gob編碼/解碼能做什麼嗎?在下面的例子中,數據在解碼前後看起來相同。我很困惑,請指教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 
+2

它編碼成'buf',這就是爲什麼你用'buf'作爲'io.Writer'創建的編碼器 – JimB

回答

2

您的比較是錯誤的 - 比較被編碼的數據(data)的結果解碼後(d.Decode(data)),顯然會導致你同樣的結果(如果一切工作預期)。

編碼本身將顯示在下劃線字節緩衝區中(嘗試打印緩衝區本身 - fmt.Println(buf.Bytes()))。

瞭解更多關於the gob package