안녕하세요. 언제나 휴일, 언휴예요.
Go 언어에서는 바이너리 데이터를 읽거나 쓸 때 바이트 단위로 처리할 때 byte 형식을 주로 사용해요. 그리고 유니코드(UTF-8)를 표현할 때 rune을 사용합니다.
먼저 byte 표현하는 방법을 새로운 프로젝트를 만들어 확인합시다.
// Example byte 표현 package main import "fmt" func main() { var b1 byte = 49 var b2 byte = 061 var b3 byte = 0x31 var b4 byte = '1' fmt.Println(b1) fmt.Println(b2) fmt.Println(b3) fmt.Println(b4) }
byte 형식 변수에는 0부터 255까지의 정수 표현을 사용할 수 있어요. 그리고 ‘a’ 처럼 하나의 아스키코드 문자를 표현할 수 있습니다. 다음은 숫자 문자 ‘1’의 아스키 코드를 네 가지 방법으로 표현한 것입니다.
var b1 byte = 49 var b2 byte = 061 var b3 byte = 0x31 var b4 byte = '1'
그런데 아스키코드는 미국 알파벳은 표현할 수 있지만 한글은 표현할 수 없어요. 한글이나 한자 등을 표현할 때는 유니코드를 사용하여 표현할 수 있어요. Go 언어에서는 유니코드(UTF-8)를 표현할 때 사용하는 형식 rune을 제공하고 있어요.
마찬가지로 새로운 프로젝트를 생성하여 직접 표현해 보아요.
// Example rune 형식에 유니코드 표현 package main import "fmt" func main() { var r1 rune = '한' var r2 rune = '\ud55c' fmt.Println(r1) fmt.Println(r2) }
유니코드를 표현할 때는 작은 따옴표 사이에 하나의 문자를 표현하거나 ‘\u’ 혹은 ‘\U’를 사용하여 유니코드 문자값을 나타내어 표현합니다.
var r1 rune = '한' var r2 rune = '\ud55c'