Ответы:
В соответствии со спецификацией языка вы можете использовать необработанный строковый литерал, где строка отделяется обратными кавычками вместо двойных кавычек.
`line 1
line 2
line 3`
line 1
того, как он будет невидимым в вашем редакторе, но присутствует в строке.
$(abcd)
).
Ты можешь написать:
"line 1" +
"line 2" +
"line 3"
что так же, как:
"line 1line 2line3"
В отличие от использования обратных тиков, он сохранит escape-символы. Обратите внимание, что «+» должен быть в «ведущей» строке, то есть:
"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)
}
Вместо использования символов двойной кавычки («) или одинарных кавычек ('), вместо этого используйте обратные галочки для определения начала и конца строки. Затем вы можете обернуть его через строки.
Если вы сделаете отступ в строке, помните, что пробел будет учитываться.
Пожалуйста, проверьте игровую площадку и проведите эксперименты с ней.
Вы должны быть очень осторожны с форматированием и межстрочным интервалом в 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)
}
Для меня это то, что я использую, если добавление \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.
`