programing

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

new-time 2020. 2. 9. 19:57
반응형

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

원시 리터럴을 사용할 수 있습니다.

s:=`stack overflow` 

나를 위해 이것은 추가

\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. ` 

참고 URL :

https://stackoverflow.com/questions/7933460/how-do-you-write-multiline-strings-in-go



도움이 되겠다면 ↓↓↓ 배너 한번만 클릭 해주시면 감사합니다 ^^

반응형