亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

龙游县| 东方市| 双峰县| 河北区| 杨浦区| 桃江县| 伽师县| 博客| 大港区| 鸡东县| 凌海市| 容城县| 农安县| 共和县| 得荣县| 多伦县| 沙湾县| 仁怀市| 新兴县| 阿尔山市| 凤山县| 安平县| 富顺县| 沧州市| 炎陵县| 靖边县| 洪洞县| 保定市| 逊克县| 上饶县| 长泰县| 扬中市| 阜南县| 泰顺县| 荣成市| 海南省| 汨罗市| 雷州市| 穆棱市| 嘉荫县| 黔南|