2017-03-04 2 views
-1

In meinem Go-Programm zu entschlüsseln in einen Nicht-Zeiger versucht, ich bin kodiert [] Byte-Daten mit gobgob Decoder

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

aber immer ‚gob Decoder in einen Nicht-Zeiger zu entschlüsseln versucht‘, wenn Ich versuche zu entschlüsseln

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

Er sagt, 'Daten 'ist kein Zeiger. Haben Sie versucht, einen Zeiger zu verwenden? – JimB

+0

Ich denke, das ist nur ein Tippfehler, sollten Daten statt d im Log-Print sein ..; ( – irom

Antwort

2

Gob erfordert, dass Sie einen Zeiger übergeben, um zu dekodieren.

In Ihrem Fall würden Sie tun:

d.Decode(&data) 

Grund dafür ist, so kann sie die Scheibe ändern müssen (dh: es größer zu machen, um das decodierte Array passen)