Go -- 中結構體與位元組數組能相互轉化

來源:互聯網
上載者:User

標籤:encoder   儲存   log   buffer   預設   結構   data   erro   處理   

編碼時如下,假設預設你的結構體為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的缺陷,解碼需要預Crowdsourced Security Testing道被解碼內容的結構),解碼後內容儲存在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 {          //錯誤處理    }

 

Go -- 中結構體與位元組數組能相互轉化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.