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

https://juejin.im/post/5c8f96325188252db02e40ea

Go语言中的字符串类型,是最常用一种基础数据类型,当我们开发应用程序的时候,大部分时候都会使用到字符串。

定义与使用

声明一个字符串类型的变量非常简单,一般就以下几种形式,常用简短声明,如下所示

  1. var ss //零值为"
  2. s := "test"
  3. var s1 = "test"
  4. var s2 string = "test"

从上面的例子可以看到,字符串的字面量,一般使用双引号””包含,使用双引号包含的字符串,当其中有转义字符时,会发生转义,常见的转义字符有如下几种:

  1. \a 响铃
  2. \b 退格
  3. \f 换页
  4. \n 换行
  5. \r 回车
  6. \t 制表符
  7. \v 垂直制表符
  8. \' 单引号 (只用在 '\'' 形式的rune符号面值中)
  9. \" 双引号 (只用在 "..." 形式的字符串面值中)
  10. \\ 反斜杠

另外一种字符串的字面量表示是使用反引号``包含字符串,这种包含方式使用得里面的所有字符都不会发生转义,而按原生字符显示。

字符切片

字符串也可以看作一个字符切片,通过使用len()函数可以计算字符串的字节长度,通过索引可以访问字符串中的每一个字节,索引的取值范围是0<=i<len(s)

  1. s := "欢迎来到Go语言的世界"
  2. fmt.Println(len(s)) //29个字节
  3. fmt.Println(s[2]) //通过索引访问第三个字符
  4. fmt.Println(s[30])//error,超出字符串字节长度

当然也可以像切片一个使用reslice的方式生成新的字符串,通过这种方式生成的字符串,与原来的字符串共享同一个底层数组。

  1. s1 := s[2:10]//reslice生成新的字符串

虽然注意的有两点

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

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

  1. s[0] = 'P'
ft_authoradmin  ft_create_time2019-08-03 17:08
 ft_update_time2019-08-03 17:09