结构体与[]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 {      //错误处理}