답변:
에 따르면 언어 사양 당신은 문자열 대신 큰 따옴표의 역 따옴표로 구분되는 원시 문자열 리터럴을 사용할 수 있습니다.
`line 1
line 2
line 3`
line 1
는 편집기에서 보이지 않지만 문자열에는 표시됩니다.
$(abcd)
).
당신은 쓸 수 있습니다:
"line 1" +
"line 2" +
"line 3"
이는 다음과 같습니다.
"line 1line 2line3"
백틱을 사용하는 것과 달리 이스케이프 문자를 유지합니다. "+"는 반드시 'leading'줄에 있어야합니다.
"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.
`