专栏首页大猪的笔记go笔记:序列化对象为byte

go笔记:序列化对象为byte

使用gob包,一劳永逸解决这个问题

package utils
 
import (
    "bytes"
    "encoding/gob"
)
 
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
}
 
// -------------------
// Decode
// 用gob进行数据解码
//
func Decode(data []byte, to interface{}) error {
    buf := bytes.NewBuffer(data)
    dec := gob.NewDecoder(buf)
    return dec.Decode(to)
}
//注意先注册类型
//gob.Register([]supervisor.InterfaceInfo{})

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 重构:统一输出

    在项目中,统一返回的入口和出口非常重要。因为你永远没办法知道产品经理下个版本要在返回结果中加什么乱七八糟的东西。

    超级大猪
  • python笔记:使用Python执行命令

    超级大猪
  • python笔记:线程

    2 锁 #创建锁 mutex = threading.Lock() #锁定 mutex.acquire([timeout]) #释放 mutex.release...

    超级大猪
  • Head first 设计模式之策略模式,来源于生活,用之于生活

    设计模式是软件设计中常见问题的通用可重用的解决方案,与语言无关。通过引入设计模式,可以更好的提高代码复用性、灵活性、扩展性。

    用户4361942
  • 【SDL最初实践】安全开发

    在确定产品原型与功能之后,便交由开发负责推进。然而关注点大多仅在于业务流程与功能点的实现,具体使用的技术决定于公司技术栈和个人能力,对于带着安全意识去编码这件事...

    aerfa
  • 爬取Google的心酸之路

    早在前段时间就尝试写过爬Google的了。当时由于解决不了验证码就删了,当然这次也没解决。验证码不能绕过,只能避免,减少遇见

    HACK学习
  • IC验证之“Timescale”使用小谈(一)

    Timescale,想必大家都不会陌生,它在我们的工程项目中扮演了一个很重要的角色,我们的testbench或者rtl都要依赖于timescale来承载一些与时...

    IC验证
  • YOLOv3通道+层剪枝,参数压缩98%,砍掉48个层,提速2倍!

    尽管目标检测新算法层出不穷,但在实际工程项目中不少52CV群友还是念着YOLOv3的好。将其部署到边缘设备等时,模型剪枝是非常有必要的,毕竟有原始模型有239M...

    CV君
  • 如何配置jobs和triggers【Quartz.NET总结(三)】

    前两篇文章,已经介绍了Quartz.NET的使用和Cron表达式表达式的写法,今天说一说Quartz的配置,

    架构师精进
  • 读书笔记:第一章绪论

    深度学习问题,是指从有限样例中通过算法总结出一般性的规律,并可以应用到新的未知数据上。

    小胡胡说

扫码关注云+社区

领取腾讯云代金券