Golang学习笔记(十五):字符串

815 阅读2分钟

原创作者,公众号【程序员读书】,欢迎关注公众号,转载文章请注明出处哦。

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生成新的字符串

虽然注意的有两点

  1. s[i]表示的是字符串的第i个字节,并不是第i个字符,这里因为字符串中有很多字符串需要多个字节来表达。

  2. 不能通过索引的方式给字符串中的某个字节赋值,所以以下的代码是错误的。

s[0] = 'P'

你的关注,是我写作路上最大的鼓励!