String safe.SizeOf()表示任何字符串都需要16个字节,但是如何处理呢?

String safe.SizeOf()表示任何字符串都需要16个字节,但是如何处理呢?,string,go,String,Go,只需运行fmt.Println(unsafe.Sizeof(“”)prints 16。更改字符串的内容不会影响结果 有人能解释一下这个数字(16)是怎么来的吗?Go中的字符串通过包含指向实际字符串数据的指针和字符串长度来表示: 类型StringHeader结构{ 数据uintptr 莱恩内特酒店 } unsafe.Sizeof只返回StringHeaderstruct的大小,而不返回指向的数据本身。因此(在您的示例中),Data和Len的总和分别为8个字节和8个字节,即16个字节。大小为16个

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


有人能解释一下这个数字(16)是怎么来的吗?

Go中的字符串通过包含指向实际字符串数据的指针和字符串长度来表示:

类型StringHeader结构{
数据uintptr
莱恩内特酒店
}
unsafe.Sizeof
只返回
StringHeader
struct的大小,而不返回指向的数据本身。因此(在您的示例中),
Data
Len
的总和分别为8个字节和8个字节,即16个字节。

大小为16个字节。