首頁 > 後端開發 > Golang > 如何以程式方式確定 Go 結構體的大小?

如何以程式方式確定 Go 結構體的大小?

Linda Hamilton
發布: 2024-12-18 13:22:25
原創
960 人瀏覽過

How Can I Programmatically Determine the Size of a Go Struct?

以程式方式取得 Go 結構體的大小

計算 Go 結構體的大小需要了解底層類型和對齊要求。

不安全套件方法

unsafe 套件中的 Sizeof 方法傳回變數的大小或結構。不過,要注意的是,這個大小不包括變數引用的記憶體。

手動計算結構體大小

結構體的大小取決於其欄位的類型和它們出現的順序。以下是一些指導原則:

  • 基本型別:1 位元組(bool、int8、uint8)、2 位元組(int16、uint16)、4 個位元組(int32、uint32、float32)、8位元組(int64、 uint64、float64、指標)。
  • 字串:16 個位元組(兩個8 個位元組對齊)
  • 切片:24 個位元組(三個8 個位元組對齊)
  • 陣列:n *其元素類型的大小
  • 欄位與其大小對齊。如果欄位的大小不能被對齊方式整除,則會新增填色。

例如:

使用線上服務驗證大小

您可以也可以使用[Go遊樂場](https://play.golang. org/):

以上是如何以程式方式確定 Go 結構體的大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板