golang中的反引号(``)和双引号(“”)有什么区别?
在引号 ""
中,您需要转义不需要在反引号 ``
中转义的新行、制表符和其他字符。如果您在反引号字符串中放置换行符,则会将其解释为 '\n'
字符,请参阅 https://golang.org/ref/spec#String_literals
因此,如果您在反引号字符串中输入 \n
,它将被解释为文字反斜杠和字符 n。
a := "\n" // This is one character, a line break.
b := `\n` // These are two characters, backslash followed by letter n.
反引号字符串类似于 Python 或 Scala 中的多行原始字符串:r""" text """
或 JavaScript:
String.raw`Hi\u000A!`
他们能:
跨越多行。忽略特殊字符。
它们很有用:
用于将大文本放入其中。当您有很多反斜杠时,用于正则表达式。用于将双引号放入的结构标签。
原始字符串文字是反引号之间的字符序列。反斜杠 ('\') 没有特殊含义,原始字符串文字中的回车符 ('\r') 会从原始字符串值中丢弃。
解释的字符串文字是双引号之间的字符序列(“\r”、“\n”、...)
来源:http://ispycode.com/GO/Strings/Raw-string-literals
``
表示未解释的字符串,""
是解释的字符串。
原始字符串文字(未解释的字符串)的值是由引号之间的未解释(隐式 UTF-8 编码)字符组成的字符串。解释的字符串文字是双引号之间的字符序列,如“bar”。在引号内,可以出现除换行符和非转义双引号外的任何字符。
PS:斜体字是我的
https://golang.org/ref/spec#String_literals
golang 有三种类型的引用。单引号、双引号或反引号(反引号)
单引号 - 表示对应于 uint8 或 int32 的字节类型或符文类型以及默认符文类型。通常用于表示符文类型并显示 Unicode。
双引号 - 表示字符串是 char 数组。因此,您可以使用数组索引来访问字节或使用像 len() 这样的函数。
反引号(反引号) - 表示字符串文字,但不支持转义序列。通常用于显示多行等字符串文字