当前位置: > > > > unsafe.SizeOf() 表示任何字符串都需要 16 个字节,但是如何呢?
来源:stackoverflow
2024-04-22 16:24:32
0浏览
收藏
知识点掌握了,还需要不断练习才能熟练运用。下面给大家带来一个Golang开发实战,手把手教大家学习《unsafe.SizeOf() 表示任何字符串都需要 16 个字节,但是如何呢?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!
问题内容
只需运行 fmt.Println(unsafe.Sizeof(""))
即可打印 16。更改字符串的内容不会影响结果。
有人能解释一下这个数字(16)是怎么来的吗?
解决方案
go 中的字符串由 表示,其中包含指向实际字符串数据的指针和字符串的长度:
type StringHeader struct { Data uintptr Len int }
unsafe.sizeof(s)
将仅返回 stringheader
结构的大小,而不返回指向的数据本身。因此(在您的示例中)它将是 data
的 8 个字节和 len
的 8 个字节之和,使其成为 16 个字节。
今天关于《unsafe.SizeOf() 表示任何字符串都需要 16 个字节,但是如何呢?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注公众号!