01-数据类型

Go 中的单引号 (‘)、双引号 (“) 和反引号 (`)

在 Go 中,单引号 (‘)、双引号 (") 和反引号 ( \ `) 都有不同的用途和含义,具体如下:

1、单引号 (')

单引号用于表示 字符字面量(单个字符)。在 Go 中,字符是一个单独的 Unicode 字符,并且它的类型是 rune(即 int32 类型)。

表示单个字符(rune):

1
var ch rune = 'A' // 表示字符 A,其类型是 rune(即 int32)

注意

  • 你只能用单引号表示一个字符。如果尝试使用单引号表示多个字符或者空字符,编译器会报错。
  • 例如,'AB''' 都是非法的字符字面量。

2、双引号 (")

双引号用于表示 字符串字面量。字符串是由零个或多个字符组成的一个序列,它的类型是 string(即一个包含字符序列的类型)。

表示字符串

1
var str string = "Hello, world!" // 表示字符串

转义字符: 字符串中的特殊字符(例如换行符、制表符、引号本身等)可以使用反斜杠进行转义。

1
2
var str = "Hello\nWorld" // 包含换行符 
var str2 = "She said, \"Hello!\"" // 包含双引号

注意

  • 字符串字面量是不可变的。
  • 可以表示空字符串:""
  • 默认 UTF-8 编码:Go 中的字符串默认使用 UTF-8 编码,可以包含任意 Unicode 字符

3、反引号 ( \ `)

反引号用于表示 原始字符串字面量(raw string literals)。与双引号不同,反引号字符串不支持转义字符,字符串中的所有内容会被按原样处理,包括换行符、制表符等。原始字符串通常用于处理多行文本或不需要转义的特殊字符。

表示原始字符串

1
2
3
4
var rawStr = `Hello, world!`
var multiLineStr = `This is a
multi-line
string.`

特点

  • 可以跨越多行。
  • 不支持转义字符(即不会像双引号那样处理 \n, \t, \\, \" 等转义序列)。
  • 如果你需要在字符串中包含反引号 ( \ ) 本身,可以使用 `` 来转义它。
1
var str = `This is a backtick: \`` // 字符串中包含反引号

用途

  • 适合表示文件路径(尤其是Windows路径)、正则表达式、SQL 查询等,尤其是当这些内容中可能包含反斜杠或其他特殊字符时。

总结

  • **单引号 (')**: 用于表示 单个字符(rune 类型),例如 'A'
  • **双引号 (")**: 用于表示 字符串(string 类型),并支持转义字符,例如 "Hello\nWorld"
  • **反引号 (`)**: 用于表示 原始字符串,不支持转义字符,可以包含换行符,适用于需要精确保留内容的场景,例如多行字符串、文件路径等。

01-数据类型
https://flepeng.github.io/021-Go-31-Go-基础-01-单引号、双引号、反引号/
作者
Lepeng
发布于
2024年12月2日
许可协议