原创作者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。
Go语言中的字符串类型,是最常用一种基础数据类型,当我们开发应用程序的时候,大部分时候都会使用到字符串。
定义与使用
声明一个字符串类型的变量非常简单,一般就以下几种形式,常用简短声明,如下所示
var ss //零值为"
s := "test"
var s1 = "test"
var s2 string = "test"
从上面的例子可以看到,字符串的字面量,一般使用双引号""包含,使用双引号包含的字符串,当其中有转义字符时,会发生转义,常见的转义字符有如下几种:
\a 响铃
\b 退格
\f 换页
\n 换行
\r 回车
\t 制表符
\v 垂直制表符
\' 单引号 (只用在 '\'' 形式的rune符号面值中)
\" 双引号 (只用在 "..." 形式的字符串面值中)
\\ 反斜杠
另外一种字符串的字面量表示是使用反引号``包含字符串,这种包含方式使用得里面的所有字符都不会发生转义,而按原生字符显示。
字符切片
字符串也可以看作一个字符切片,通过使用len()函数可以计算字符串的字节长度,通过索引可以访问字符串中的每一个字节,索引的取值范围是0<=i<len(s)
。
s := "欢迎来到Go语言的世界"
fmt.Println(len(s)) //29个字节
fmt.Println(s[2]) //通过索引访问第三个字符
fmt.Println(s[30])//error,超出字符串字节长度
当然也可以像切片一个使用reslice的方式生成新的字符串,通过这种方式生成的字符串,与原来的字符串共享同一个底层数组。
s1 := s[2:10]//reslice生成新的字符串
虽然注意的有两点
-
s[i]表示的是字符串的第i个字节,并不是第i个字符,这里因为字符串中有很多字符串需要多个字节来表达。
-
不能通过索引的方式给字符串中的某个字节赋值,所以以下的代码是错误的。
s[0] = 'P'
你的关注,是我写作路上最大的鼓励!