Golang에서 String을 표현하는 방법에는 두 가지가 있습니다.
Double Quote (") - Interpreted string
첫 번째는 흔히 사용하는 쌍따옴표(double-quote, ") 방식입니다. Go에서는 쌍따옴표로 열리고 닫힌 string을 Interpreted string이라 부릅니다. 예를 들자면 이렇습니다.
interpretedString := "interpreted string"
Backtick (`) - Raw string
두 번째는 역따옴표(backtick, `) 방식입니다. 역따옴표로 열리고 닫힌 string은 Raw string이라 합니다. 예를 들자면 이렇습니다.
rawString := `raw string`
차이점
Interpreted string
double quote를 이용한 Interpreted String
은 이스케이프 문자(\로 시작하는 특수한 문자)를 이스케이프 문자로써 인식합니다. 다음의 예를 보면 될 것 같습니다.
str0 := "abc"
fmt.Println(str0) // abc
str1 := "Hello,\nWorld!"
fmt.Println(str1) // Hello,
// World!
str2 := "\""
fmt.Println(str2) // "
즉, Interpreted String은 이스케이프 문자인 개행 문자(newline, '\n')를 개행 문자 그 자체로 받아들입니다.
Raw string
반면, backtick을 이용한 Raw String은 이스케이프 문자를 이스케이프 문자로 받아들이지 않습니다. 오히려 그 자체를 출력합니다.
str0 := `abc`
fmt.Println(str0) // abc
str1 := `Hello,\nWorld!`
fmt.Println(str1) // Hello,\nWorld!
str2 := `\"`
fmt.Println(str2) // \"
Raw string은 보통 JSON 형식의 String을 처리할 때 종종 사용하게 됩니다. JSON key value가 일반적으로 쌍따옴표로 이루어진 string이기 때문에 이를 Interpreted string으로 나타내게 되면 쌍따옴표 구분을 명확하게 해줘야 해서 번거롭기 때문입니다.
반응형
'IT > Go' 카테고리의 다른 글
[Go/Golang] JSON 데이터 형식에 맞춰 Struct를 자동으로 생성해주는 사이트 (0) | 2021.03.02 |
---|---|
[Go/Golang] Golang에서 Windows 파일 경로 지정하기 (0) | 2021.02.23 |
[Go/Golang] go test 실행 시 gcc 에러가 발생하는 경우(mac, windows, linux) (0) | 2021.02.19 |
[Go/Golang] go get 과 go install 은 어떻게 다른 것일까? (0) | 2021.02.19 |
[Go/Golang] Go 1.16 부터 io/ioutil 패키지가 deprecated 됩니다. (0) | 2021.02.18 |