我正在使用 go 的 encoding/gob 将类型为 T 的两个不同对象解码为同一个对象,但是对象的 bool 成员在第二次解码后没有改变。为什么?package mainimport ( "fmt" "encoding/gob" "bytes")type T struct { X int Y string Z bool}func main() { t := T{} buf := new(bytes.Buffer) enc := gob.NewEncoder(buf) dec := gob.NewDecoder(buf) t1 := T{1, "1", true} enc.Encode(t1) dec.Decode(&t) fmt.Printf("%+v\n", t) // If t is a new entity, the second decode into t can product expected result: {X:2 Y:2 Z:false} // otherwise, t's bool member has not been changed after the second decode. // t = T{} t2 := T{2, "2", false} enc.Encode(t2) dec.Decode(&t) fmt.Printf("%+v\n", t) // result: // {X:1 Y:1 Z:true} // {X:2 Y:2 Z:true}}
- 2 回答
- 0 关注
- 89 浏览
添加回答
举报
0/150
提交
取消