中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go語言結構體與二進制數組轉換是怎樣的

發布時間:2021-12-01 14:52:42 來源:億速云 閱讀:303 作者:柒染 欄目:云計算

本篇文章為大家展示了 Go語言結構體與二進制數組轉換是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Go語言結構體與二進制數組轉換

把結構體當二進制流傳輸是做協議的時候經常用到的功能。要做結構體與字節數組的轉換,在C語言中只要做個指針類型的強制轉換就行了。Go語言里也是有指針的,但是沒有C的指針那么自由,默認的不能做任意類型轉換。Go語言提供更安全的方式。最簡單有效的是使用Gob庫,另外,也可以使用encoding/binary把字節串轉換成結構體。下面是一個使用的例子:視頻教程

package main

import (
        "fmt"
        "bytes"
        "encoding/binary"
)

func main() {
    buf := new(bytes.Buffer)
    var data = []interface{}{
        uint16(61374),
        int8(-54),
        uint8(254),
    }
    for _, v := range data {
        err := binary.Write(buf, binary.LittleEndian, v)
        if err != nil {
            fmt.Println("binary.Write failed:", err)
        }
    }
    fmt.Printf("%x", buf.Bytes())
}

用指針轉換

當然,結構體和字符串有同樣的內存結構,也能進行指針轉換,雖然這比較容量出錯。

package main

import ("unsafe"; "fmt")

func main() {
    var a uint = 0xbeefcafe
    fmt.Println(*(*byte)(unsafe.Pointer(&a)))
}

上述內容就是 Go語言結構體與二進制數組轉換是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延安市| 探索| 柳林县| 鹤庆县| 白山市| 房产| 陆丰市| 新营市| 越西县| 高台县| 府谷县| 克山县| 体育| 双峰县| 高陵县| 犍为县| 甘肃省| 池州市| 彭山县| 芮城县| 沙雅县| 南川市| 利川市| 涞水县| 尖扎县| 五家渠市| 日喀则市| 河北区| 理塘县| 丹东市| 阜平县| 界首市| 赤壁市| 庄浪县| 商都县| 渭南市| 绵阳市| 镇原县| 浪卡子县| 桃园市| 务川|