2017-03-04 103 views
-1

在我的圍棋程序,我編碼[]與採空區採空區解碼器試圖解碼到非指針

buf := new(bytes.Buffer) 
    enc := gob.NewEncoder(buf) 
     //data is []byte 
     buf.Reset() 
     enc.Encode(data) 

但得到字節的數據「坯解碼器試圖解碼到非指針」時我試圖解碼

buf := new(bytes.Buffer) 
    d := gob.NewDecoder(buf) 
     d.Decode(data) 
     log.Printf("%s", d) 
+1

它說'數據'不是一個指針。你有沒有嘗試過使用指針? – JimB

+0

我認爲這只是一個錯字,應該是日誌打印中的數據而不是d;( – irom

回答

2

Gob要求您傳遞一個指針來解碼。

在你的情況,你會怎麼做:

d.Decode(&data) 

原因是,它可能不得不修改切片(即:既要更大,以適應解碼陣列)