不安全的。SizeOf() 说任何字符串都需要 16 个字节,但如何做到呢?

只需运行打印 16。更改字符串的内容不会影响结果。fmt.Println(unsafe.Sizeof(""))

有人可以解释这个数字(16)是如何来的吗?


潇潇雨雨
浏览 135回答 1
1回答

元芳怎么了

Go 中的字符串由反射表示。StringHeader 包含指向实际字符串数据的指针和字符串长度:type StringHeader struct {         Data uintptr         Len  int         }unsafe.Sizeof(s)将仅返回结构的大小,而不返回指向数据本身。因此(在您的示例中),它将是8个字节的总和,使其成为16个字节的8个字节。StringHeaderDataLen
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go