字符串类型

Go语言的源文件仅支持UTF-8和Unicode两种编码格式。出于简化语言的考虑,Go语言多数API都假设字符串以UTF-8编码

1.简介

Go语言中,字符串类型也是一种基础类型。

str = "Hello world" //字符串赋值
ch := str[0] //取字符串第一个字符

2.基本操作

2.1 连接

golang的字符串支持使用 "+" 直接拼接

str := "hello" + "123" //结果为hello123

2.2 求长度

len("Hello") //结果为5

2.3 取字符

s := "Hello"
s[1]  //结果为 'e'

2.4 strings包

3.字符串的遍历

3.1 以字节数组遍历

str := "Hello, 世界"
n := len(str)
for i := 0; i < n; i++ {
    ch := str[i]
    fmt.Println(i, ch)
}

输出结果如下:

0 72
1 101
2 108
3 108
4 111
5 44
6 32
7 228
8 184
9 150
10 231
11 149
12 140

从输出我们可以发现,str字符串长为13,这是因为每个中文字符在UTF-8中占3个字节。

3.2 以Unicode字符遍历

str := "Hello, 世界"
    for i, ch := range str {
        fmt.Println(i, ch)
    }

输出结果如下:

0 72
1 101
2 108
3 108
4 111
5 44
6 32
7 19990
10 30028

以Unicode字符方式遍历时,每个字符类型就是rune,而不是byte。关于rune的操作,可以查询
标准库的Unicode包