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
도움이 되겠다면 ↓↓↓ 배너 한번만 클릭 해주시면 감사합니다 ^^
'programing' 카테고리의 다른 글
Base64 이미지 임베딩 (0) | 2020.02.09 |
---|---|
파이썬에서 날짜를 날짜 / 시간으로 변환 (0) | 2020.02.09 |
iloc, ix 및 loc은 어떻게 다른가요? (0) | 2020.02.09 |
CSV 파일 데이터를 PostgreSQL 테이블로 가져 오는 방법은 무엇입니까? (0) | 2020.02.09 |
열의 최대 값이있는 행을 가져옵니다. (0) | 2020.02.09 |