문자

문자열 에서 Go

1개의 연습 문제

문자열 소개

Go에서 string은 변경할 수 없는 바이트 시퀀스예요. 이 바이트가 반드시 문자를 나타내야 하는 것은 아니에요.

문자열 리터럴은 큰따옴표 사이에 적어요:

const name = "Jane"

문자열은 + 연산자로 이어 붙일 수 있어요:

"Jane" + " " + "Austen"
// => "Jane Austen"

일부 특수 문자는 앞에 백슬래시를 붙여 이스케이프해야 해요. 예를 들어 문자열에서 탭은 \t로, 새 줄은 \n으로 나타내요.

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

strings 패키지에는 문자열을 다루는 유용한 함수가 많이 들어 있어요. 문자열 함수에 대해 더 자세히 알고 싶다면 strings 패키지 문서를 확인해 봐요. 다음은 몇 가지 예시예요:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

특수 문자

앞서 말했듯이, 일부 특수 문자는 앞에 백슬래시를 붙여 이스케이프해야 해요. 다음은 그 특수 문자들을 더 자세히 정리한 목록이에요:

값 설명
\a 경고음 또는 벨
\b 백스페이스
\\ 백슬래시
\t 가로 탭
\n 라인 피드 또는 줄 바꿈
\f 폼 피드
\r 캐리지 리턴
\v 세로 탭
\' 작은따옴표
\" 큰따옴표
fmt.Println("Joe\nWilliam\nJack\nAverell") 

// Output:
// Joe
// William
// Jack
// Averell

원시 문자열 리터럴

원시 문자열 리터럴은 큰따옴표 대신 백틱(`)을 구분자로 사용하며, 안에 있는 모든 문자가 그대로 해석돼요. 그래서 문자나 줄 바꿈을 이스케이프할 필요가 없어요.

다음은 여러 줄 문자열의 예시예요:

const daltons = `Joe
William
Jack
Averell`

이 문자열은 여러 줄로 되어 있어요. 더 정확히는 \n이 세 개 있어요. 하지만 원시 문자열 리터럴이기 때문에 \n을 문자열에 직접 넣을 필요가 없어요. 줄 바꿈은 그대로 해석돼요.

다음은 원시 문자열 리터럴과 일반 문자열 리터럴을 비교한 몇 가지 예시예요:

`abc`
// same as "abc"

"\"" // regular string literal with 1 character: a double quote
// same as `"` a raw string literal with 1 character: a double quote

`\n
` // raw string literal with 3 character: a backslash, an 'n', and a newline
// same as "\\n\n"  a regular string literal with 3 characters: a backslash, an 'n', and a newline

"\t\n" // regular string literal with 2 characters: a tab and a newline
`\t\n`// raw string literal with 4 characters: two backslashes, a 't', and an 'n'
GitHub에서 편집 링크가 새 창이나 탭에서 열려요

문자열 배우기