Go是否有类似于Python的多行字符串:
"""line 1
line 2
line 3"""
如果没有,那么编写跨多行字符串的首选方式是什么?
Go是否有类似于Python的多行字符串:
"""line 1
line 2
line 3"""
如果没有,那么编写跨多行字符串的首选方式是什么?
当前回答
可以使用原始文字。实例
s:=`stack
overflow`
其他回答
对我来说,如果添加不成问题,这就是我使用的方法。
fmt.Sprintf("Hello World\nHow are you doing today\nHope all is well with your go\nAnd code")
否则,可以使用原始字符串
multiline := `Hello Brothers and sisters of the Code
The grail needs us.
`
在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)
}
对多行字符串使用原始字符串文本:
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
}
Go和多行字符串
使用反引号可以有多行字符串:
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)
}
不要使用双引号(“)或单引号符号('),而是使用反引号来定义字符串的开始和结束。然后可以将其换行。
如果您缩进字符串,请记住,空格将计数
请检查操场并用它做实验。
你可以在内容周围加上“”,比如
var hi = `I am here,
hello,
`