只需运行打印 16。更改字符串的内容不会影响结果。fmt.Println(unsafe.Sizeof(""))有人可以解释这个数字(16)是如何来的吗?
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
Go 中的字符串由反射表示。StringHeader 包含指向实际字符串数据的指针和字符串长度:
type StringHeader struct {
Data uintptr
Len int
}unsafe.Sizeof(s)将仅返回结构的大小,而不返回指向数据本身。因此(在您的示例中),它将是8个字节的总和,使其成为16个字节的8个字节。StringHeaderDataLen
- 1 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消
