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

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

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


当前回答

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)
}

不要使用双引号(“)或单引号符号('),而是使用反引号来定义字符串的开始和结束。然后可以将其换行。

如果您缩进字符串,请记住,空格将计数

请检查操场并用它做实验。

其他回答

可以使用原始文字。实例

s:=`stack
overflow`

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)
}

不要使用双引号(“)或单引号符号('),而是使用反引号来定义字符串的开始和结束。然后可以将其换行。

如果您缩进字符串,请记住,空格将计数

请检查操场并用它做实验。

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

`line 1
line 2
line 3`

在Go中创建多行字符串实际上非常简单。在声明或分配字符串值时,只需使用backtick(`)字符。

package main

import (
    "fmt"
)

func main() {
    // String in multiple lines
    str := `This is a
multiline
string.`
    fmt.Println(str + "\n")
    
    // String in multiple lines with tab
    tabs := `This string
        will have
        tabs in it`
    fmt.Println(tabs)
}

你可以写:

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

其与:

"line 1line 2line 3"

与使用反引号不同,它将保留转义字符。请注意,“+”必须在“前导”行上-例如,以下内容将生成错误:

"line 1"
+"line 2"