从Go语言字符串开始逆袭
源代码
runtime/string.go
1 | type stringStruct struct { |
2行 可以指向任何数据类型的Pointer,指向底层Byte数组
3行 8个字节的长度 - 是底层Bytes数组的长度,使用unicode字符集,3个自己表示1个汉字,英文在前128位,使用utf-8变长编码(把很长的unicode字符,以8个位为单位的字节),英文字符只需要2个字节,其他需要3个字节
Go语言对utf-8编码/解码 runtime/utf8.go
1 | s := "面向加薪学习" |
输出
16
16
1 | func ShowLen(s string) { |
输出
18
25
打印底层byte
1 | func PrintWords(s string) { |
输出
233
157
162
229
144
145
229
138
160
232
150
170
229
173
166
228
185
160
1 | func PrintWords2(s string) { |
输出
38754
21521
21152
34218
23398
20064
1 | func PrintWords3(s string) { |
输出
面
向
加
薪
学
习
如何学习Go语言微服务,快速步入架构师
添加微信 | 公众号更多内容 |
---|---|
本博客所发布的内容,部分内容来源于网络,版权归原作者所有,如有侵权,请联系删除。转载请注明来自 面向加薪学习!