Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Close
- go
- 리뷰
- window
- go언어
- write
- tcp
- Linux
- package
- Callback
- windows
- json
- c++
- Python
- C
- Sync
- range
- Golang
- install
- mutex
- http
- bitcoin
- GO 언어
- FOR
- channel
- 영화
- JavaScript
- 책
- File
- API
Archives
- Today
- Total
Code Habit
Go ) 문자열 본문
Go 언어는 문자열을 저장할 수 있는 변수를 제공한다. 문자열은 "" (따옴표)로 묶어주어야 하며 알파벳, 한글, 한자 등 UTF-8로 표현할 수 있는 문자를 사용할 수 있다.
여러 줄로 된 문자열 저장할 때는 ''(백쿼트)로 묶어준다.
var s7 string = "안녕하세요"
문자열의 길이를 구할때는 'len' 함수를 사용한다.
var s1 string = "한글"
var s2 string = "Hello"
fmt.Println(len(s1)) // 6 : UTF-8 인코딩의 바이트 길이이므로 6
fmt.Println(len(s2)) // 5 : 알파벳 5글자이므로 5
한글, 한자, 일본어 등 UTF-8로 저장했을 때 2바이트가 넘는 문자열의 길이를 구하려면 다음과 같이 unicode/utf8 패키지의 RuneCountInString 함수를 사용한다.
package main
import "fmt"
import "unicode/utf8"
func main() {
var s1 string = "한글"
fmt.Println(utf8.RuneCountInString(s1)) // 2 : 문자열의 실제 길이를 구함
}
문자열을 비교할 때는 '==' 연산자를, 그리고 여러 문자열을 붙일 때는 '+' 연산자를 사용한다.
var s1 string = "한글"
var s2 string = "한글"
var s3 string = "Go"
fmt.Println( s1 == s2 ) // true : 두 문자열이 같으므로 true
fmt.Println( s1 + s3 + s2 ) // 한글Go한글
fmt.Println( "안녕하세요" + s1 )// 안녕하세요한글
문자열은 배열과 동일하게 '[]'(대괄호)로 각 문자를 가져올 수 있다.
var s1 string = "Hello"
fmt.Println("%c\n", s1[1]) // e: 문자열에서 두 번째 문자 e
Go 언어는 변수에 문자열을 저장한 뒤 내용을 수정할 수 없다. 문자열 변수를 선언하여 문자열을 대입한 뒤 다른 문자열을 다시 대입할 수는 있지만 문자열의 내용을 수정하려고 하면 컴파일 에러가 발생한다.
var s1 string = "Hello, world!\n"
s1 = "abcdefg" // 다른 문자열을 대입할 수 있음
fmt.Println(s1[0]) // 97 : ASCII 코드 a, 배열 형태로 각 문자에 접근
s1[0] = 'z' // 컴파일 에러