3.3 문자열
문자열(string)은 큰따옴표(")나 백쿼트(` )로 생성한다. 보통은 큰따옴표로 생성한다. 백쿼트로 생성하면 이스케이프 문자와 줄 바꿈을 무시한다. 그래서 HTML이나 XML처럼 문자열을 여러 줄로 작성하거나 정규표현식을 작성할 때 유용하게 사용할 수 있다.
floatExp := `^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$`
headerHtml := `
<nav class="navbar navbar-fixed-top">
<div class="nav-box">
<div class="left">
<a href="" class="nav-icon-btn"><span class="nav-icon"><i class="icn-back-nav">back</i></span></a>
</div>
<div class="center">
LIST
</div>
</div>
</nav>`
다음 두 문자열은 같다.
path1 := "c:\\workspace\\go\\src\\" path2 := `c:\workspace\go\src\`
표 3-8에 문자나 문자열에서 사용하는 이스케이프를 정리했다.
이스케이프 |
설명 |
\\ |
역슬래시(\) |
\‘ |
작은따옴표(‘), 문자 리터럴에만 사용 가능 |
\“ |
큰따옴표(“), 문자열 리터럴에만 사용 가능 |
\a |
벨(ASCII 코드 7, BEL), 콘솔의 벨을 울림 |
\b |
백스페이스(ASCII 코드 8, BS) |
\f |
쪽 바꿈(ASCII 코드 12, FF) |
\n |
줄 바꿈(ASCII 코드 10, LF) |
\r |
복귀(ASCII 코드 13, CR) |
\t |
탭(ASCII 코드 9, TAB) |
\v |
수직 탭(ASCII 코드 11, VT) |
\xhh |
유니코드 문자, 16진수 코드 포인트를 2자리로 표현 |
\ooo |
유니코드 문자, 8진수 코드 포인트를 3자리로 표현 |
\uhhhh |
유니코드 문자, 16진수 코드 포인트를 4자리로 표현 |
\Uhhhhhhhh |
유니코드 문자, 16진수 코드 포인트를 8자리로 표현 |
다음은 자주 사용하는 문자열 관련 함수이다.
함수 |
설명 |
len(s) |
문자열 s의 바이트 수 |
len([]rune(s)) |
문자열 s의 문자 수 |
utf8.RuneCountInString(s) |
문자열 s의 문자 수 |
strconv.Atoi(s) |
문자열 s를 정수(int) 타입으로 변환 |
strconv.Itoa(i) |
정수 i를 문자열로 변환 |
fmt.Sprint(x …) |
x 값의 출력 문자열( x 가 숫자 1일 때 “1”을 반환) |
fmt.Sprintf(format,x …) |
x 값의 서식이 지정된 출력 문자열 |