golang中结构体与字节数组能相互转化么
答案:2 悬赏:0
解决时间 2021-10-02 02:35
- 提问者网友:雾里闻花香
- 2021-10-01 18:58
golang中结构体与字节数组能相互转化么
最佳答案
- 二级知识专家网友:千杯敬自由
- 2020-01-23 02:21
结构体与[]byte不能直接转化,一般都是先转化为json等通用传输格式再转化为[]byte
全部回答
- 1楼网友:夜余生
- 2020-11-18 13:38
结构体与[]byte不能直接转化,可以通过gob来转换。
编码时如下,假设默认的结构体为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相一致,解码后内容保存在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 { //错误处理}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯