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

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

Linda Hamilton
Linda Hamilton原創
2024-12-18 13:22:251010瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn