编码时如下,假设默认你的结构体为data

func Encode(data interface{}) ([]byte, error) {
buf := bytes.NewBuffer(nil)
enc := gob.NewEncoder(buf)
err := enc.Encode(data)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}

解码时如下,data为需要解码的字节数组,to为相应的接收结构体,记住to的结构体结构应与被编码的data相一致(这就是gob相对于json的缺陷,解码需要预先知道被解码内容的结构),解码后内容保存在to里面,直接使用to即可

func Decode(data []byte, to interface{}) error {
buf := bytes.NewBuffer(data)
dec := gob.NewDecoder(buf)
return dec.Decode(to)
}

使用的时候:

b, err := Encode(data)
if err != nil {
//错误处理
}
if err := Decode(b, &to); err != nil {
//错误处理
}

最新文章

  1. OPTM-Optimal Marks-SPOJ839最小割
  2. PHP Web Shell in browser
  3. 鼠标光标聚焦到可编辑div的最末尾
  4. 第28章 行为型模式大PK
  5. 第十二天--Property List和NSUserDefaults
  6. Linux下GPIO驱动(二) ----s3c_gpio_cfgpin();gpio_set_value();
  7. 【转】使用PHP创建基本的爬虫程序
  8. 201521123015 《Java程序设计》第9周学习总结
  9. 设计模式:HelloWorld之策略模式
  10. javascript的ES6学习总结(第二部分)
  11. HTTP Authentication
  12. jQuery中如何实现多库并存?
  13. 如何在Linux下写无线网卡的驱动【转】
  14. 【机器学习算法-python实现】採样算法的简单实现
  15. centos7: nginx安装配置
  16. phpstom pojie
  17. 《剑指offer》第三十八题(字符串的排列)
  18. 时间操作(JavaScript版)—年月日三级联动(默认显示系统时间)
  19. REST-assured 3发送图片
  20. function方法控制是否隐藏部分内容

热门文章

  1. Python学习笔记3(字典)
  2. Ubuntu美化
  3. python基础知识14-正则表达式
  4. LCD驱动分析(二)帧缓冲设备作为平台设备
  5. 【HIHOCODER 1323】回文字符串(区间DP)
  6. java null 空指针
  7. 【06】前端需要注意哪些SEO
  8. wp8 longlistselector 动态加载datatemplate
  9. 4A. Just a Hook
  10. Laya List翻页滚动方案 & List滚动源码解析