协慌网

登录 贡献 社区

您如何在 Go 中编写多行字符串?

Go 是否具有类似于 Python 的多行字符串的内容:

"""line 1
line 2
line 3"""

如果不是,编写跨多行字符串的首选方式是什么?

答案

根据语言规范,您可以使用原始字符串文字,该字符串由反引号(而不是双引号)分隔。

`line 1
line 2
line 3`

你可以写:

"line 1" +
"line 2" +
"line 3"

与以下内容相同:

"line 1line 2line 3"

与使用回勾不同,它将保留转义字符。请注意,“+” 必须在 “领先” 行上 - 例如,以下内容将产生错误:

"line 1"
+"line 2"

字符串文字

  • 原始字符串文字支持多行(但不解释转义字符)
  • 解释字符串字面量解释转义字符,例如 ' \n '。

但是,如果多行字符串必须包含反引号(`),则必须使用解释后的字符串文字:

`line one
  line two ` +
"`" + `line three
line four`

您不能将反引号(`)直接放在原始字符串文字(``xx \ )中。
您必须使用(如 “如何在反引号中的字符串中加上反引号? ” 中所述):

+ "`" + ...