2017-03-04 5 views
-2

Macht die Kodierung/Dekodierung von Gob nichts? Im folgenden Beispiel sehen die Daten vor und nach der Dekodierung gleich aus. Ich bin verwirrt, bitte ratenWas macht die Kodierungskodierung?

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

Es kodiert in 'buf', das ist, warum Sie den Geber mit' buf' als 'io.Writer' erstellt – JimB

Antwort

2

Ihr Vergleich ist falsch - Vergleich der Daten (data) codiert werden, um das Ergebnis nach (d.Decode(data)) decodiert wird, wird natürlich führen Sie zu dem gleichen Ergebnis (wenn alles funktioniert wie erwartet).

Die Codierung selbst wird in der Unterstreichung Bytes Puffer dargestellt (versuchen Sie, den Puffer selbst zu drucken - fmt.Println(buf.Bytes())).

Lesen Sie mehr über the gob package