有没有一种方法可以在golang中计算sizeof类型?

时间:2020-06-14 15:58:44

标签: go

https://dlintw.github.io/gobyexample/public/memory-and-sizeof.html

它显示了如何计算变量的sizeof。但是我想计算一个类型的sizeof(例如'uint32')。 Go中有办法吗?

1 个答案:

答案 0 :(得分:0)

使用Type.Size获取类型的大小。

t := reflect.TypeOf((*uint32)(nil)).Elem()
fmt.Println(t.Size())  // prints 4

表达式reflect.TypeOf((*X)(nil)).Elem()获取任何类型X的{​​{3}}。

对于uint32和其他数字类型,可以使用更简单的表达式reflect.TypeOf(uint32(0))来获取类型。

reflect.Type函数也可以使用,但是它需要一个类型的值。

fmt.Println(unsafe.Sizeof(uint32(0)))  // prints 4