亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > golang中struct和[]byte的相互轉換示例

golang中struct和[]byte的相互轉換示例

熱門標簽:浙江高頻外呼系統多少錢一個月 鄭州亮點科技用的什么外呼系統 惠州電銷防封電話卡 釘釘有地圖標注功能嗎 黃岡人工智能電銷機器人哪個好 汕頭小型外呼系統 阿里云ai電話機器人 濱州自動電銷機器人排名 建造者2地圖標注

在網絡傳輸過程中,經常會這樣處理:socket接收到數據,先獲取其消息頭,然后再做各種不同的業務處理。在解析消息頭的時候的方法有多種多樣。其中最為高效解析消息頭的方法就是直接把數據頭部分強制類型轉換為對應的消息頭結構體。這種做法在C/C++中非常的常見。而golang其實也是可以這樣子做的。類似這樣的應用,直接類型轉換獲取消息對應的解析方法其實效率會相對較高。

golang中struct和[]byte的轉換方法,其實就是用到了golang中的unsafe包加上類型轉換 , 約束:struct中不能有指針類型。

1、struct轉化為[]byte,轉換方法如下:

import (
  "fmt"
  "unsafe"
)
type TestStructTobytes struct {
  data int64
}
type SliceMock struct {
  addr uintptr
  len int
  cap int
}

func main() {

  var testStruct = TestStructTobytes{100}
  Len := unsafe.Sizeof(*testStruct)
  testBytes := SliceMock{
    addr: uintptr(unsafe.Pointer(testStruct)),
    cap: int(Len),
    len: int(Len),
  }
  data := *(*[]byte)(unsafe.Pointer(testBytes))
  fmt.Println("[]byte is : ", data)
} 

運行結果:

[]byte is :  [100 0 0 0 0 0 0 0]

因為[]byte底層的數據結構為:

struct { 
 addr uintptr 
 len int 
 cap int 
 } 

其中addr為數值的地址,len為當地數值的長度,cap為數值的容量。 

轉換的時候,需要定義一個和[]byte底層結構一致的struct(如例子中的SliceMock),然后把結構體的地址賦給addr,結構體的大小賦給len和cap。最后將其轉換為[]byte類型。

2、將[]byte轉換為struct,轉換方法如下:

import (
  "fmt"
  "unsafe"
)
type TestStructTobytes struct {
  data int64
}
type SliceMock struct {
  addr uintptr
  len int
  cap int
}

func main() {

  var testStruct = TestStructTobytes{100}
  Len := unsafe.Sizeof(*testStruct)
  testBytes := SliceMock{
    addr: uintptr(unsafe.Pointer(testStruct)),
    cap: int(Len),
    len: int(Len),
  }
  data := *(*[]byte)(unsafe.Pointer(testBytes))
  fmt.Println("[]byte is : ", data)
  var ptestStruct *TestStructTobytes = *(**TestStructTobytes)(unsafe.Pointer(data))
  fmt.Println("ptestStruct.data is : ", ptestStruct.data)
} 

運行結果:

[]byte is :  [100 0 0 0 0 0 0 0]
ptestStruct.data is :  100

從上面的例子中將[]byte轉換為struct的代碼片段為:

var ptestStruct *TestStructTobytes = *(**TestStructTobytes)(unsafe.Pointer(data))

分析: 

由于在golang中編譯器不將[]byte視為指針,所以要使用其地址進行轉換,由于[]byte底層存放的是指向數據的地址。用[]byte的地址就需要使用雙層指針轉換,然后再指向其內容,得出來的就是轉換對應struct的指針了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • Golang二進制文件混淆保護操作
  • 減少 golang 二進制文件大小操作
  • 淺談golang二進制bit位的常用操作
  • Golang如何交叉編譯各個平臺的二進制文件詳解
  • Golang如何實現任意進制轉換的方法示例
  • golang 將[]byte轉成16進制的實現

標簽:駐馬店 滄州 昭通 瀘州 東營 阿壩 晉中 泰安

巨人網絡通訊聲明:本文標題《golang中struct和[]byte的相互轉換示例》,本文關鍵詞  golang,中,struct,和,byte,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang中struct和[]byte的相互轉換示例》相關的同類信息!
  • 本頁收集關于golang中struct和[]byte的相互轉換示例的相關信息資訊供網民參考!
  • 推薦文章
    日韩字幕在线| 国产a视频| 亚洲 男人 天堂| 可以在线看黄的网站| 久久精品免视看国产明星| 免费一级片在线观看| 国产不卡精品一区二区三区| 成人a级高清视频在线观看| 成人免费网站视频ww| 91麻豆国产| 成人免费高清视频| 国产不卡在线播放| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品国产三级a∨在线观看| 国产成人精品影视| 免费一级片在线观看| 一本高清在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 成人高清护士在线播放| 欧美a免费| 国产不卡在线看| 午夜在线亚洲| 日日日夜夜操| 亚欧成人毛片一区二区三区四区| 久草免费资源| 欧美1卡一卡二卡三新区| 亚洲 欧美 91| 欧美另类videosbestsex视频| 精品国产一区二区三区国产馆| 成人免费高清视频| 亚欧成人毛片一区二区三区四区| 日韩avdvd| 日韩中文字幕一区| 国产视频一区在线| 欧美1卡一卡二卡三新区| 日日夜夜婷婷| 尤物视频网站在线| 日本在线www| 国产精品1024永久免费视频| 九九精品久久久久久久久| 国产精品自拍一区| 成人在激情在线视频| 亚洲天堂在线播放| 91麻豆国产| 国产伦理精品| 精品久久久久久综合网| 你懂的日韩| 国产一区免费观看| 精品视频一区二区三区| 四虎影视精品永久免费网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产一区免费观看| 国产精品123| 欧美日本韩国| 亚洲天堂免费观看| 99久久精品国产高清一区二区 | 亚洲 男人 天堂| 99久久精品国产片| 日韩在线观看视频黄| 国产精品1024永久免费视频| 日韩中文字幕在线亚洲一区| 青草国产在线观看| 成人免费观看男女羞羞视频| 午夜久久网| 国产不卡在线播放| 日韩中文字幕一区| 国产视频一区在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产视频久久久| 美国一区二区三区| 免费国产在线观看| 日韩专区一区| 精品久久久久久影院免费| 成人免费高清视频| 精品国产一区二区三区久| 精品视频在线观看视频免费视频| 国产激情一区二区三区| 亚洲 欧美 91| 成人高清视频免费观看| 天天做日日爱| 日本在线不卡免费视频一区| 精品久久久久久影院免费| 天天色色色| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 91麻豆国产级在线| 国产一区免费观看| 国产伦久视频免费观看 视频 | 国产伦理精品| 国产成人啪精品| 欧美激情一区二区三区视频| 久久精品免视看国产明星| 亚欧视频在线| 91麻豆精品国产自产在线观看一区 | 国产精品1024永久免费视频| 国产国语对白一级毛片| 欧美a级片视频| 美女免费黄网站| 久久国产精品自由自在| 一级女性大黄生活片免费| 欧美a级片视频| 欧美一级视频免费| 精品国产一区二区三区免费| 国产成a人片在线观看视频| 999精品在线| 成人免费一级毛片在线播放视频| 四虎影视精品永久免费网站| 国产美女在线观看| 青草国产在线观看| 国产视频久久久| 高清一级片| 国产精品自拍一区| 国产亚洲精品aaa大片| 国产成人女人在线视频观看| 91麻豆精品国产高清在线| 国产一区二区福利久久| 国产一区免费观看| 国产不卡在线播放| 久久福利影视| 99久久精品国产高清一区二区 | 青青青草影院| 青青久热| 国产高清在线精品一区二区| 国产网站免费视频| 高清一级片| 国产不卡福利| 午夜在线亚洲| a级黄色毛片免费播放视频| 日韩av东京社区男人的天堂| 日韩在线观看视频网站| 欧美电影免费看大全| 日本乱中文字幕系列| 中文字幕97| 亚久久伊人精品青青草原2020| 国产亚洲精品aaa大片| 亚洲 男人 天堂| 久久久久久久久综合影视网| 国产美女在线观看| 欧美爱爱动态| 日韩avdvd| 久久99这里只有精品国产| 青青青草影院| 久久福利影视| 午夜激情视频在线播放| 四虎影视精品永久免费网站| 久久成人性色生活片| 国产网站在线| 日韩字幕在线| 国产极品精频在线观看| 国产麻豆精品| 日本在线不卡免费视频一区| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美电影免费看大全| 午夜精品国产自在现线拍| 你懂的日韩| 国产一区免费观看| 日韩一级精品视频在线观看| 国产原创视频在线| 精品视频免费看| 高清一级做a爱过程不卡视频| 亚洲女人国产香蕉久久精品 | 国产一区免费观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品国产一区二区三区久久久狼| 国产伦久视频免费观看 视频 | 国产91视频网| 天天色色色| 国产91精品一区| 天天做日日干| 国产成人啪精品| 欧美激情在线精品video| 成人影院久久久久久影院| 麻豆系列 在线视频| 一级女性大黄生活片免费| 日本免费看视频| 久久99青青久久99久久| 四虎影视久久久免费| 香蕉视频亚洲一级| 日韩免费在线观看视频| 国产麻豆精品| 香蕉视频亚洲一级| 一本高清在线| 日韩在线观看视频网站| 国产成人女人在线视频观看| 欧美国产日韩精品| 欧美一区二区三区在线观看| 成人a级高清视频在线观看| 成人免费网站视频ww| 91麻豆国产级在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚欧成人毛片一区二区三区四区| 尤物视频网站在线| 91麻豆精品国产自产在线观看一区 | 国产成人女人在线视频观看| 国产美女在线观看| 天天做人人爱夜夜爽2020| 久久久久久久男人的天堂| 日韩男人天堂| 你懂的日韩| 国产一区二区精品久| 国产网站麻豆精品视频|