为了账号安全,请及时绑定邮箱和手机立即绑定

golang将字节数组转换为结构

golang将字节数组转换为结构

Go
呼啦一阵风 2021-10-25 14:34:35
我正在寻找一种干净的方法来将字节数组转换为客户端 - 服务器应用程序的结构。我知道大多数人都为此解决方案转向 gob 包,但是我不控制应用程序的编码。话虽如此,我只编写了服务器应用程序而不是客户端,正在交换的协议有一个相互合同。我能得出的最好结果如下。type T struct {    A int16    B int8    C []byte}func main() {    // Create a struct and write it.    t := T{A: 99, B: 10}    buf := &bytes.Buffer{}    buf1 := []byte{5, 100, 100}    fmt.Println(buf1)    buf.Write(buf1)    //err := binary.Write(buf, binary.BigEndian, t)    //if err != nil {    //  panic(err)    //}    fmt.Println(buf)    // Read into an empty struct.    t = T{}    err := binary.Read(buf, binary.BigEndian, &t)    if err != nil {        panic(err)    }    fmt.Printf("%d %d", t.A, t.B)}然而,一旦 number bytes 与结构体的大小不一致,go 就会发送一个 panic。如果尺寸过小或过大,我如何修改它以使其工作而不会出现恐慌
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 692 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信