一 字符串类型
字符串在Go语言中是以原生数据类型出现的,使用字符串就像使用其他基本类型(int、bool、float32、float64等)一样。Go语言中,使用关键字string来声明字符串变量。
字符串的值为双引号中的内容,可以在Go语言的源码中直接添加非ASCII码字符。示例代码如下:
str := "Hello, Golang"
ch := "中文"
1.1 字符串转义符
Go语言的字符串转义符和其他编程语言的是一样,如:回车、换行、单双引号、制表符等。
转义符 含义
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
\' 单引号
\" 双引号
\\ 反斜杠
在Go语言源码中使用转义字符的示例如下:
package main
import (
"fmt"
)
func main() {
fmt.Println("str := \"c:\\Go\\bin\\go.exe\"")
}
运行结果为:str := "c:\Go\bin\go.exe"
这段代码中将双引号("")和反斜杠(\)进行转义。
1.2 字符串实现基于UTF-8编码
Go语言字符串的内部实现使用的是UTF-8编码。通过rune类型,可以很方便地对每个UTF-8字符进行访问。当然,Go语言也支持按传统的ASCII码方式进行逐个字符访问。
1.3 定义多行字符串
在源码中,将字符串的值以双引号("")书写的方式是字符串的常见表达方式,被称为字符串字面量(string literal)。这种双引号字面量不能跨行,如果需要在源码中嵌入一个多行字符串时,就必须使用反引号字符(`)。示例代码如下:
package main
import "fmt"
func main(){
const str = `第一行
第二行
第三行
\r\n
`
fmt.Println(str)
}
输出结果如下:go run strDemo.go
第一行
第二行
第三行
\r\n
<说明> 在两个反引号中的字符串将被原样赋值到str变量中。反引号间的换行被视为字符串中的换行,但是所有的转义字符均无效,文本将会原样输出。多行字符串一般用于内嵌源码和内嵌数据等。在反引号间的所有代码均不会被编译器识别,而只是作为字符串的一部分。