在golang中,string其实是个结构体,如图,在这个结构体中有两个值,一个是指向字符数组的指针str,另一个是这个字符串的长度len。
另外在golang中用的是UFT8边长编码,里面字母是用一个字节,西方的文字使用两个字节,而中文用的是三个字节,少部分文字是用四个字节。如图,
其中四个文字占了12个字节,另外四个字母占了4个字节,所以加起来是16字节。
直接对字符串进行下标访问,得到的是字节,
如果是想输出字符串的值,得用range和printf,如图
因为range对字符串的编译码进行了优化,详细可以去查源码,在utf8.go中