type arrayType struct { CommonType Elem typeId Len int } type sliceType struct { CommonType Elem typeId } type structType struct { CommonType Field []*fieldType } type fieldType struct { Name string Id int } 全てName とID を持つCommonType を埋め込みで持つ
gob.NewDecoder(&buf) s := Src{ ID: "test_id", Num: 100, Score: 1.23, } var d Dest enc.Encode(s) dec.Decode(&d) fmt.Printf("%+v\n", d) fmt.Println(*d.ID) Run
{ var e Data b.ResetTimer() for i := 0; i < b.N; i++ { b.StopTimer() buf.Reset() err := enc.Encode(encodeData) if err != nil { b.Fatal(err) } b.StartTimer() err = dec.Decode(&e) if err != nil { b.Fatal(err) } } }
gob.NewEncoder(&buf) dec := gob.NewDecoder(&buf) var e Handler e = &A{ ID: "A", } fmt.Println(enc.Encode(&e)) var d Handler fmt.Println(dec.Decode(&d)) fmt.Println(d.GetID()) } Run
var buf bytes.Buffer enc := gob.NewEncoder(&buf) dec := gob.NewDecoder(&buf) var e Handler e = &A{ ID: "A", } fmt.Println(enc.Encode(e)) var d Handler fmt.Println(dec.Decode(&d)) fmt.Println(d.GetID()) } Run
buf bytes.Buffer enc := gob.NewEncoder(&buf) dec := gob.NewDecoder(&buf) var e Handler e = &A{ ID: "A", } fmt.Println(enc.Encode(&e)) var d Handler fmt.Println(dec.Decode(&d)) fmt.Println(d.GetID()) } Run