企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
一个字符串是一个不可改变的字节序列,字符串可以包含任意的数据,但是通常是用来包含可读的文本。字符串是 UTF-8 字符的一个序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。 字符串是一种值类型,且值不可变,即创建某个文本后将无法再次修改这个文本的内容,更深入地讲,字符串是字节的定长数组。 ## 定义字符串 可以使用双引号`""`来定义字符串,字符串中可以使用转义字符来实现换行、缩进等效果。常用的转义字符包括: * \n:换行符; * \r:回车符; * \t:tab键; * \u或\U:Unicode字符 * \\:反斜杠自身 一般的比较运算符(==、!=、=、>)是通过在内存中按字节比较来实现字符串比较的,因此比较的结果是字符串自然编码的顺序。字符串所占的字节长度可以通过函数 len() 来获取,例如 len(str)。 字符串的内容(纯字节)可以通过标准索引法来获取,在方括号`[ ]`内写入索引,索引从 0 开始计数。 * 字符串 str 的第 1 个字节:str\[0\] * 第 i 个字节:str\[i - 1\] * 最后 1 个字节:str\[len(str)-1\] 需要注意:这种转换方案只对纯ASCII码的字符串有效。 **注意:获取字符串中某个字符的地址属于非法行为,例如&str[0]** ## 字符串拼接符“+” 两个字符串 s1 和 s2 可以通过 s := s1 + s2 拼接在一起。将 s2 追加到 s1 尾部并生成一个新的字符串 s。 ``` str := "Beginning of the string" + "second part of the string" ``` 也可以使用“+=”来对字符串进行拼接: ``` s := "hel" + "lo, " s += "world !" fmt.Println(s) // 输出"hello, word !" ``` ## 字符串实现基于UTF-8编码 Go语言中字符串的内部实现使用 UTF-8 编码,通过 rune 类型,可以方便地对每个 UTF-8 字符进行访问。 ## 定义多行字符串 在Go语言中,使用双引号书写字符串的方式是字符串常见表达方式之一,被称为字符串字面量(string literal),这种双引号字面量不能跨行,如果想要在源码中嵌入一个多行字符串时,就必须使用```反引号,代码如下: ~~~ const str = `第一行 第二行 第三行 \r\n ` fmt.Println(str) ~~~