分享
How to serialize/unserialize type struct in GO
u012413865 · · 2790 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
How to serialize/unserialize type struct in GO
package main
import (
"bytes"
"encoding/gob"
"fmt"
"log"
)
type Data struct {
id int
name string
}
func (d *Data) GobEncode() ([]byte, error) {
w := new(bytes.Buffer)
encoder := gob.NewEncoder(w)
err := encoder.Encode(d.id)
if err != nil {
return nil, err
}
err = encoder.Encode(d.name)
if err != nil {
return nil, err
}
return w.Bytes(), nil
}
func (d *Data) GobDecode(buf []byte) error {
r := bytes.NewBuffer(buf)
decoder := gob.NewDecoder(r)
err := decoder.Decode(&d.id)
if err != nil {
return err
}
return decoder.Decode(&d.name)
}
func main() {
d := Data{id: 7, name: "jackie"}
enc, err := d.GobEncode()
if err != nil {
log.Fatal("encode error:", err)
}
e := new(Data)
e.GobDecode(enc)
fmt.Println(e)
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信2790 次点击
上一篇:Go语言Slice操作.
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
How to serialize/unserialize type struct in GO
package main
import (
"bytes"
"encoding/gob"
"fmt"
"log"
)
type Data struct {
id int
name string
}
func (d *Data) GobEncode() ([]byte, error) {
w := new(bytes.Buffer)
encoder := gob.NewEncoder(w)
err := encoder.Encode(d.id)
if err != nil {
return nil, err
}
err = encoder.Encode(d.name)
if err != nil {
return nil, err
}
return w.Bytes(), nil
}
func (d *Data) GobDecode(buf []byte) error {
r := bytes.NewBuffer(buf)
decoder := gob.NewDecoder(r)
err := decoder.Decode(&d.id)
if err != nil {
return err
}
return decoder.Decode(&d.name)
}
func main() {
d := Data{id: 7, name: "jackie"}
enc, err := d.GobEncode()
if err != nil {
log.Fatal("encode error:", err)
}
e := new(Data)
e.GobDecode(enc)
fmt.Println(e)
}
版权声明:本文为博主原创文章,未经博主允许不得转载。