本文摘自php中文网,作者藏色散人,侵删。
下面由golang教程栏目给大家介绍go语言中的rune怎么获取字符长度,希望对需要的朋友有所帮助!rune是Go语言中一种特殊的数据类型,它是int32的别名,几乎在所有方面等同于int32,用于区分字符值和整数值,官方解释如下:
1 2 3 4 5 6 |
|
下面我们通过一个例子来看一下:
1 2 3 |
|
我们猜测一下结果,hello5 个字符+1 个空格+3 个汉字,算起来应该是 9 个,长度为 9 才对,但是我们执行一下,
结果打印是 15,这是为什么呢?
golang中string底层是通过byte数组实现的。中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。
所以计算出的长度就等于 5+1+3*3=15
如果我们需要计算出字符串的长度,而不是底层字节的个数,那么可以使用下面的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
运行结果如下:
在 rune 定义上方还有一个,byte = uint8
1 2 3 4 |
|
- byte 等同于int8,常用来处理ascii字符
- rune 等同于int32,常用来处理unicode或utf-8字符
以上就是go语言中的rune怎么获取字符长度的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
更多相关阅读请进入《Go》频道 >>
Go语言101
一个与时俱进的Go编程知识库。