PHpullh
학습 라이브러리/Go/문자열과 rune 심화

GO · 기초 문법

문자열과 rune 심화

Go 문자열은 UTF-8 바이트 시퀀스입니다. rune은 유니코드 코드포인트를 나타내며, 한글 등 멀티바이트 문자를 안전하게 처리합니다.

기초 문법중급stringruneutf8unicodebuilder

핵심 설명

Go 문자열은 UTF-8 바이트 시퀀스입니다. rune은 유니코드 코드포인트를 나타내며, 한글 등 멀티바이트 문자를 안전하게 처리합니다.

Go code

package main

import (
	"fmt"
	"strings"
	"unicode/utf8"
)

func main() {
	s := "Hello, 세계! 🌍"

	fmt.Println("바이트 길이:", len(s))
	fmt.Println("문자 수:", utf8.RuneCountInString(s))

	// range는 rune 단위로 순회
	for i, r := range s {
		if r == '세' {
			fmt.Printf("'세' at byte %d\n", i)
		}
	}

	// 문자열 빌더 (효율적 연결)
	var b strings.Builder
	for i := 0; i < 5; i++ {
		fmt.Fprintf(&b, "%d ", i)
	}
	fmt.Println(b.String()) // 0 1 2 3 4
}

학습 팁

range로 문자열을 순회하면 자동으로 rune(유니코드 문자) 단위로 디코딩됩니다. 인덱스는 바이트 위치입니다.

주의할 점

len(s)는 바이트 수를 반환합니다. 한글 등 멀티바이트 문자의 문자 수를 세려면 utf8.RuneCountInString을 사용하세요.

자주 묻는 질문

문자열과 rune 심화란 무엇인가요?

Go 문자열은 UTF-8 바이트 시퀀스입니다. rune 은 유니코드 코드포인트를 나타내며, 한글 등 멀티바이트 문자를 안전하게 처리합니다.

문자열과 rune 심화 학습 시 주의할 점은 무엇인가요?

len(s) 는 바이트 수를 반환합니다. 한글 등 멀티바이트 문자의 문자 수를 세려면 utf8.RuneCountInString 을 사용하세요.