Golang字符串遍历
什么是字符串
在 Go 语言中,字符串实际上是类型为 byte 的只读切片。
一个字符包含了任意个 byte。它并不限定 Unicode,UTF-8或者任何其它预定义的编码。在内容上,它完全等价于一个类型为 byte 的切片。
字符串是 Golang 语言中最常用的基础数据类型之一,虽然字符串被看作是一个整体,但是实际上字符串是一片连续的内存空间,我们也可以理解成一个由字符组成的数组。
C 语言中的字符串就使用字符串就使用字符数组 char[] 表示,作为数组会占用一片连续的内存连续空间,这片内存空间存储了的字节共同组成了字符串,Go语言中的字符串其实是一个只读的数组。
UTF-8 和字符串
索引字符字符串返回的是 byte,而不是字符:一个字符就是一堆字节。这意味着当我们将字符存储在字符串中时,实际存储的是这个字符的字节。
Go源码总是UTF-8
一个字符串包含任意个byte
字符串常量如果缺少字节级转义,将始终保持UTF-8序列。
Unicode的代码点在Go语言中被称为rune
Go不保证字符串中的字符是规范化的。
go有两种方式对字符串进行遍历
go 语言中的字条串实际上是类型为 byte 的只读切片。或者说一个字符串是一堆字节。
utf-8 uint8 byte
Unicode int32 rune
参考
Last updated
Was this helpful?