字符与字符串的区别
- 字符串:通常用于表示整个文本系列字符,使用双引号(
")括起来。 - 符文(Rune):Go 语言中用来代表单个字符,使用单引号(
')书写。
核心概念:Go 使用 Unicode 标准存储符文。符文在底层是作为数字代码(Unicode 码点)保存的,而不是字符本身的图形。
符文的输出特性
- 如果将符文传递给
fmt.Println,输出的将是其对应的数字代码,而不是原始字符。 - 示例映射:
'A'→ 输出65'B'→ 输出66'北'→ 输出21271'*'(其他语言字符) → 输出对应码点(如1174)
符文中的转义序列
与字符串类似,符文也可以使用反斜杠 “ 表示难以直接包含的字符,输出同样为对应的数字代码:
'\t'(制表符) → 输出9'\n'(换行符) → 输出10'\\'(反斜杠本身) → 输出92'\"'(双引号) /'\''(单引号)同理。
代码演示与解析
package main
import "fmt"
func main() {
fmt.Println("foxdevelop.com") // 字符串:正常输出 foxdevelop.com
fmt.Println("b") // 字符串:正常输出 b
fmt.Println('b') // 符文:输出 98 (Unicode 码点)
fmt.Println('a') // 符文:输出 97
fmt.Println('北') // 符文:输出 21271
fmt.Println('\n') // 转义符文:输出 10
fmt.Println('\t') // 转义符文:输出 9
fmt.Println('\\') // 转义符文:输出 92
}Code language: JavaScript (javascript)
实际运行输出结果
foxdevelop.com
b
98
97
21271
10
9
92Code language: CSS (css)
(进程退出代码 0 表示成功)
对比
| 特性 | 字符串 (String) | 符文 (Rune) |
|---|---|---|
| 引号 | 双引号 " | 单引号 ' |
| 含义 | 文本序列 | 单个 Unicode 字符 |
| Println 输出 | 原始文本(如 b) | 数字代码(如 98) |
| 底层 | 字节序列 | int32 (Unicode 码点) |
注意:若想将符文以字符形式输出,通常需结合 fmt.Printf("%c", 'A') 或使用字符串转换 string('A')。
Previous: GO语言的字符串
Next: GO语言里面的布尔类型