正如我们第二章提到的,字符串是一组具有特定长度的、描述文本的字符序列。通常来说,字符串里的字符各占用一个字节(如中文之类的其他语言的字符占用一个以上的字节)。
字符串字面量由双引号"Hello World"或者反引号`Hello World`创建。它们的区别在于,双引号不能换行但可以有特殊字符转移。比方说\n会被替换成换行,而\t会被替换成制表符。
常用的字符串操作包括获取字符串长度:len("Hello World") ,获取字符串中的特定字符:"Hello World"[1],将两个字符串连接起来:"Hello "+" World"。让我们修改之前的程序来做个测试:
package main
import "fmt"
func main() {
fmt.Println(len("Hello World"))
fmt.Println("Hello World"[1])
fmt.Println("Hello " + "World")
}
需要注意以下事情:
空格也占用字符,所以字符串的长度是11而不是10,打印的第三行是"Hello "而不是"Hello"。
字符串的字符从0开始索引,而不是1。[1]以为着取第二个元素,而不是第一个。当你运行程序的时候,你会注意到你看见的是101而不是e。这是因为字符是用字节表示的(字节是整数型的)。
有一种表示字符串索引的方式:"Hello World"1 。你可以理解它为“字符串Hello World的子元素1”、“字符串Hello World的第1位”或“字符串Hello World的第二个字符”。
字符串连接跟加法使用相同的操作符。Go编译器由参数的类型决定做何种处理。由于+号的两边都是字符串,编译器推测你想表达的是连接字符串,而不是做加法(加法对字符串没有意义)。
原文地址:http://www.zingscript.com/translate/golang-book
来源:oschina
链接:https://my.oschina.net/u/1441707/blog/195128