11.1、基本介绍

字符串就是一串固定长度的字符链接起来的字符序列,go的字符串是由单个字节连接起来的,go语言的字符串的字节使用utf-8编码标识unicode文本

eg:

/* string类型 */
package main
import (
   "fmt"
  // "unsafe"
)

func main() {
   //string的基本使用
   var address string = "中国上海,hello golang"
   fmt.Println(address)
}

中国上海,hello golang

11.2、string使用注意事项和细节

1.go语言的字符串的字节使用utf-8编码标识unicode文本,这样golang使用utf-8编码,中文乱码问题不再困扰程序员。

2.字符串一旦赋值了,字符串就不能修改,在go中字符串是不可变 的。

   //字符串一旦赋值了,字符串就不能修改了,在go中字符串是不可变的
   var str = "hello"
   str[0] = 'a'  //不能修改str内容,go中字符串是不可变 的。
   fmt.Println("str=",str)

3.字符串有两种表示形式:

​ (1)双引号,会识别转义字符

​ (2)反引号,以字符串的原生形式输出,包括换行和特殊字符,可以使用防止攻击、输出源代码等效果。

   //双引号识别转义字符
   str2 := "abc\nabc"
   fmt.Println(str2)
   //使用的反引号`` 原生形式输出
   str3 := `
   package main
import (
   "fmt"
   "unsafe"
)
func main(){
   var b = true
   fmt.Println("b=",b)
//bool类型占用存储空间是1个字符
   fmt.Println("b的占用空间=",unsafe.Sizeof(b))
}
*/
   `
   fmt.Println(str3)
   
输出效果:
abc
abc

package main
import (
   "fmt"
   "unsafe"
)
func main(){
   var b = true
   fmt.Println("b=",b)
//bool类型占用存储空间是1个字符
   fmt.Println("b的占用空间=",unsafe.Sizeof(b))
}
*/

4.字符串拼接方式

   //字符串拼接方式
   var str4 = "hello" + "world"
   str4 += "hahahaha!"
   fmt.Println(str4)
   
结果:
helloworldhahahaha!

5.当一行字符串太长时,需要使用到多行字符串,可做如下处理

   //多行处理,可以分行写,需要将+保留在上一行
   str5 := "hello" + "world" + "hello" + "world" +
   "hello" + "world" +
   "hello" + "world" 
   fmt.Println(str5)