Golang 中的字符串,有两种表示方法:
s1 := "hello, world"
s2 := `hello, world.
send using Golang`
Golang 中没有字符类型(就是 C 中的 char
),字符串都是 rune
类型。Golang 中字符串以 UTF-8 编码后存储,存储的是字节。
UTF-8 实际是上一种变长编码,一个字符(一个中文字或其他语言的文字)可能以 1 个、2 个或 3 个字节来存储。作为对比,一个 ASCII 字符只需要一个字节,当然 ASCII 可以表示的字符就比较有限了。
在 Golang 中,字符串的内容一但被创建,是不能被修改的。如果需要修改字符串,可以将字符串转换为 []byte
或者 []rune
。需要特别指出的一点是在使用 for ... range
遍历字符串中的字符时,Golang 会自动将 string
转换为 []rune
,然后再遍历字符串。例如:
s := "hello 世界"
for i, v := range s {
fmt.Printf("%v = %c\n", i, v)
}
输出:
0 = h
1 = e
2 = l
3 = l
4 = o
5 =
6 = 世
9 = 界
len(s)
返回的是字符串 s
的字节数。
网友评论