[string] Go에서 여러 줄로 된 문자열을 어떻게 작성합니까?

Go에는 Python의 여러 줄 문자열과 비슷한 것이 있습니까?

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

그렇지 않은 경우 여러 줄에 걸쳐있는 문자열을 작성하는 기본 방법은 무엇입니까?



답변

에 따르면 언어 사양 당신은 문자열 대신 큰 따옴표의 역 따옴표로 구분되는 원시 문자열 리터럴을 사용할 수 있습니다.

`line 1
line 2
line 3`


답변

당신은 쓸 수 있습니다:

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

이는 다음과 같습니다.

"line 1line 2line3"

백틱을 사용하는 것과 달리 이스케이프 문자를 유지합니다. “+”는 반드시 ‘leading’줄에 있어야합니다.

"line 1"
+"line 2"

오류를 생성합니다.


답변

에서 문자열 리터럴 :

  • 원시 문자열 리터럴은 여러 줄을 지원하지만 이스케이프 된 문자는 해석되지 않습니다.
  • 해석 된 문자열 리터럴은 ‘ \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)
}

큰 따옴표 (“) 또는 작은 따옴표 ( ‘)를 사용하는 대신 백틱을 사용하여 문자열의 시작과 끝을 정의하십시오. 그런 다음 여러 줄로 줄 바꿈 할 수 있습니다.

문자열을 들여 쓰면 공백이 포함된다는 점을 기억하십시오.

놀이터를 확인하고 실험 해보십시오.


답변

주위에“로 내용을 넣을 수 있습니다.

var hi = `I am here,
hello,
`


답변

이동 중에도 서식과 줄 간격에 매우주의해야합니다. 모든 것이 중요하며 여기에는 작동하는 샘플이 있습니다. 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)
}