计算 Go 结构体的大小需要了解底层类型和对齐要求。
unsafe 包中的 Sizeof 方法返回变量的大小或结构。不过,需要注意的是,这个大小不包括变量引用的内存。
import "unsafe" func GetStructSize(s interface{}) int { return int(unsafe.Sizeof(s)) }
结构体的大小取决于其字段的类型和它们出现的顺序。以下是一些指导原则:
例如:
type Coord3d struct { X, Y, Z int64 } // Size of Coord3d is 24 bytes (3 * 8 bytes)
您可以还可以使用 [Go游乐场](https://play.golang.org/):
func main() { type Coord3d struct { X, Y, Z int64 } fmt.Println(unsafe.Sizeof(Coord3d{})) // Outputs: 24 }
以上是如何以编程方式确定 Go 结构体的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!