编程笔记 Golang基础 017 数据类型:字符串类型
- 一、字符串类型
- 小结
在Go语言中,字符串(string)是一种基本的数据类型,用于表示文本数据。它是一个不可变的字符序列,由UTF-8编码的字节组成,支持Unicode字符集。
一、字符串类型
-
定义:
- Go中的字符串是由双引号
"
包围的一系列字符。
var greeting string = "Hello, 世界"
- Go中的字符串是由双引号
-
内部实现:
- 在内存中,字符串实际上是通过一个字节数组(
[]byte
)来存储的,并且该数组的内容是只读的,因此字符串本身是不可修改的。 - 字符串的实际长度等于其包含的字节数,但它的有效字符数量取决于实际的UTF-8编码序列。
- 在内存中,字符串实际上是通过一个字节数组(
-
Unicode支持:
- Go语言原生支持Unicode字符,这意味着你可以直接在字符串中使用任何Unicode字符或代码点。
s := "😀😃😄" // 这是一个包含三个表情符号的字符串
-
操作与方法:
- 虽然字符串不可变,但可以通过函数和方法进行连接、复制、查找、替换等操作。
package main import ("fmt""strings" )func main() {str1 := "Hello"str2 := "World"combined := str1 + " " + str2 // 字符串拼接fmt.Println(combined) // 输出:Hello WorldlowerStr := strings.ToLower("Golang") // 转为小写fmt.Println(lowerStr) // 输出:golangcontains := strings.Contains(combined, "Wor") // 检查子串存在性fmt.Println(contains) // 输出:truereplaced := strings.Replace(combined, "World", "Universe", -1) // 替换子串fmt.Println(replaced) // 输出:Hello Universe }
- 虽然字符串不可变,但可以通过函数和方法进行连接、复制、查找、替换等操作。
-
转换:
- 可以将字符串转换为字节切片(
[]byte
),反之亦然。str := "example" bytes := []byte(str) newStr := string(bytes)
- 可以将字符串转换为字节切片(
-
原始字符串(Raw String Literals):
- 原始字符串允许在字符串内容中直接包含换行符和反斜杠,而无需转义。
raw := `This is a
- 原始字符串允许在字符串内容中直接包含换行符和反斜杠,而无需转义。
multiline string.
The backslash \ does not need to be escaped here.`
```
- 空字符串:
- 空字符串用双引号包围的零长度字符序列表示:
""
。
- 空字符串用双引号包围的零长度字符序列表示:
总的来说,Go语言中的字符串设计旨在简化对Unicode文本的处理,同时提供了丰富的标准库函数来进行高效的操作和管理。
小结
字符串类型使用率最高。