Answers:
根据语言规范,您可以使用原始字符串文字,该字符串由反引号而不是双引号分隔。
`line 1
line 2
line 3`
line 1
它将在编辑器中不可见,但在字符串中存在。
$(abcd)
)。
你可以写:
"line 1" +
"line 2" +
"line 3"
与以下内容相同:
"line 1line 2line3"
与使用回勾不同,它将保留转义字符。请注意,“ +”必须在“领先”行上,即:
"line 1"
+"line 2"
产生一个错误。
\n
并且更容易使用动态字符串等。如果我是正确的,那么可以接受的答案实际上是代码中的静态字符串,以使其看起来更漂亮。
从字符串文字:
\n
'。但是,如果多行字符串必须包含反引号(`),则必须使用解释后的字符串文字:
`line one
line two ` +
"`" + `line three
line four`
您不能在原始字符串文字(``xx'')中直接加上反引号(` \
)。
您必须使用(如“ 如何在反引号中的字符串中加上反引号? ”中所述):
+ "`" + ...
对多行字符串使用原始字符串文字:
func main(){
multiline := `line
by line
and line
after line`
}
原始字符串文字是反引号之间的字符序列,如中所示
`foo`
。在引号内,除反引号外,任何字符都可能出现。
一个重要的部分是原始文字不只是多行,而且成为多行并不是其唯一目的。
原始字符串文字的值是由引号之间未解释(隐式为UTF-8编码)字符组成的字符串。特别是反斜杠没有特殊含义...
因此,转义符将不会被解释,刻度线之间的新行将是真正的新行。
func main(){
multiline := `line
by line \n
and line \n
after line`
// \n will be just printed.
// But new lines are there too.
fmt.Print(multiline)
}
可能您有长行要中断,并且不需要新行。在这种情况下,您可以使用字符串连接。
func main(){
multiline := "line " +
"by line " +
"and line " +
"after line"
fmt.Print(multiline) // No new lines here
}
由于“”被解释为字符串,因此将解释字面量转义。
func main(){
multiline := "line " +
"by line \n" +
"and line \n" +
"after line"
fmt.Print(multiline) // New lines as interpreted \n
}
使用回勾,您可以使用多行字符串:
package main
import "fmt"
func main() {
message := `This is a
Multi-line Text String
Because it uses the raw-string back ticks
instead of quotes.
`
fmt.Printf("%s", message)
}
不要使用双引号(“)或单引号('),而应使用反引号定义字符串的开头和结尾。然后,您可以将其跨行包装。
如果您缩进字符串,请记住空格将起作用。
请检查游乐场并进行实验。
您必须非常注意格式和行间距,一切都很重要,这是一个有效的示例,请尝试一下https://play.golang.org/p/c0zeXKYlmF
package main
import "fmt"
func main() {
testLine := `This is a test line 1
This is a test line 2`
fmt.Println(testLine)
}
对我来说,如果添加\n
没有问题,这就是我要使用的东西。
fmt.Sprintf("Hello World\nHow are you doing today\nHope all is well with your go\nAnd code")
否则您可以使用 raw string
multiline := `Hello Brothers and sisters of the Code
The grail needs us.
`