Go是否与Python的多行字符串类似:
"""line 1
line 2
line 3"""
如果没有,编写跨越多行的字符串的首选方法是什么?
答案 0 :(得分:839)
根据language specification,您可以使用原始字符串文字,其中字符串由反引号而不是双引号分隔。
`line 1
line 2
line 3`
答案 1 :(得分:92)
你可以写:
"line 1" +
"line 2" +
"line 3"
与:
相同"line 1line 2line3"
与使用后退标记不同,它将保留转义字符。请注意,“+”必须位于“前导”行,即:
"line 1"
+"line 2"
生成错误。
答案 2 :(得分:34)
\n
”。 但是,如果您的多行字符串必须包含反引号(`),那么您将不得不使用解释的字符串文字:
`line one
line two ` +
"`" + `line three
line four`
你不能直接将反引号(`)放在原始字符串文字中(``xx \
)。
您必须使用(如“how to put a backquote in a backquoted string?”中所述):
+ "`" + ...
答案 3 :(得分:22)
对多行字符串使用原始字符串文字:
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
}
答案 4 :(得分:6)
使用倒勾可以包含多行字符串:
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)
}
不要使用双引号(“)或单引号('),而应使用反引号定义字符串的开始和结束。然后,您可以将其跨行包装。
如果您缩进字符串,请记住空格将 计数。
请检查playground 并进行实验。
答案 5 :(得分:4)
您可以在其周围添加“`,例如
var hi = `I am here,
hello,
`
答案 6 :(得分:3)
你必须非常小心go中的格式和行间距,一切都很重要,这里有一个工作样本,试一试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)
}
答案 7 :(得分:1)
您可以使用原始文字。 例子
s:=`stack
overflow`
答案 8 :(得分:0)
对我来说,如果添加\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.
`
答案 9 :(得分:-1)