Golang中unsafe.Sizeof()的问题

来源:互联网 发布:程序员优秀简历 编辑:程序博客网 时间:2024/06/06 13:21

*今天看到一段代码感觉很奇怪。。。*

代码的如下

package mainimport "unsafe"const (    a = "abc"    b = len(a)    c = unsafe.Sizeof(a))func main(){    println(a, b, c)}

代码运行结果如下

string内部实现

感觉很奇怪。。为什么unsafe.Sizeof(a)计算出来的值是16?问题先写出来,我要去好好研究一下。。。

初步解释:因为Golang中的sring内部实现由两部分组成,一部分是指向字符串起始地址的指针,另一部分是字符串的长度,两部分各是8字节,所以一共16字节

//组成可以理解成此结构体typedef struct{char* buffer;size_tlen;} string;
原创粉丝点击