字符串是一个不可改变的字节序列。字符串可以包含任意的数据,但是通常是用来包含可读的文本。Go 语言 字符串是 UTF-8 字符的一个序列,就是一串固定长度的字符连接起来的字符序列。
Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。Go 语言字符串需要使用双引号引起来。
Go 语言字符串是一种值 类型,且值不可变,即创建某个文本后你无法再次修改这个文本的内容,也可以理解,字符串是字节的定长 数组。
Go 语言字符串的内容(纯字节)可以通过标准索引法来获取,在中括号 [] 内写入索引,索引从 0 开始计数。
"hello haicoder"
使用双引号定义的字符串,会识别转义字符。
`hello haicoder`
使用反引号定义的字符串,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果。
str = str1 + str2
参数 | 描述 |
---|---|
str | 拼接后返回的字符串。 |
str1 | 需要拼接的字符串。 |
str2 | 需要拼接的字符串。 |
Go 语言字符串拼接符为 +
,两个或多个字符串可以通过 +
拼接在一起,形成一个新的字符串。
Go 语言里的字符串的内部实现使用 UTF-8 编码。通过 rune 类型,可以方便地对每个 UTF-8 字符进行访问。当然,Go 语言也支持按传统的 ASCII 码方式进行逐字符访问。
```
Hello Haicoder,
Hello Golang,
www.haicoder.net
```
Go 语言中使用双引号定义的字符串是不支持换行的。在 Go 语言中,定义一个多行字符串需要使用反引号 `` 将多行字符串引起来。
使用 string 类型,定义一个字符串变量
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello 嗨客网(www.haicoder.net)")
var name string = "HaiCoder"
var site = "嗨客网"
fmt.Println("Name = ", name, "Site = ", site)
}
程序运行后,控制台输出如下:
我们使用 string
定义了一个字符串变量 name
,并给变量赋值为 HaiCoder
。 接着,我们再次使用类型的自动推导,定义了一个字符串变量,并赋值为 嗨客网
。
使用 `` 定义多行字符串
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello 嗨客网(www.haicoder.net)")
var name string = "Hello \"HaiCoder\""
var site = `Hello
"HaiCoder"`
fmt.Println("Name = ", name)
fmt.Println("Site = ", site)
}
程序运行后,控制台输出如下:
我们使用 string
定义一个字符串,字符串中包含双引号,所以我们必须使用转义字符进行转义,否则会报错。
接下来,我们使用反引号定义一个多行字符串,该字符串里面所有的字符都会原样输出,不需要进行任何转义。
使用 +
实现字符串拼接
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello 嗨客网(www.haicoder.net)")
var name string = "HaiCoder"
var site = " : http://www.haicoder.net"
fmt.Println(name + site)
}
程序运行后,控制台输出如下:
我们定义了两个字符串,接着在打印结果时,使用 +
实现两个字符串的拼接。
Go 语言中字符串是一个不可改变的字节序列。字符串可以包含任意的数据,但是通常是用来包含可读的文本。
Go 语言字符串需要使用双引号引起来。使用 `` 可以定义一个多行 Go 语言字符串,该字符串中的所有的字符都会原样输出,不需要转义。
使用 +
可以实现两个 Go 语言字符串的拼接。