https://dlintw.github.io/gobyexample/public/memory-and-sizeof.html
它显示了如何计算变量的sizeof。但是我想计算一个类型的sizeof(例如'uint32')。 Go中有办法吗?
答案 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