문자열

String과 UTF-8 접근법

Rust 문자열은 UTF-8 바이트 위에 만들어져 있어 인덱스 숫자 하나가 항상 문자 하나를 뜻하지 않습니다.

인덱싱 금지 이유 문자마다 바이트 길이가 다르므로 s[0] 같은 접근은 의미와 비용이 모호해 Rust가 허용하지 않습니다.

소유권 이동이 괜찮으면 + 연산자, 원본을 보존하며 여러 값을 합치려면 format!이 읽기 쉽습니다.

String

소유 가능한 가변 UTF-8 문자열이며 힙에 데이터를 저장합니다.

&str

문자열 데이터 일부를 빌려 보는 슬라이스입니다.

push 계열

push_str은 문자열 슬라이스를, push는 단일 문자를 추가합니다.

반복

bytes, chars를 목적에 맞게 고르고 문자소 클러스터는 별도 처리가 필요합니다.

문자열 처리 순서

결합 선택
1
소유

문자열을 수정하거나 보관해야 하는지 판단합니다.

2
추가

붙일 대상이 문자 하나인지 문자열 조각인지 구분합니다.

3
순회

바이트, 유니코드 스칼라 값, 사용자 체감 문자 중 기준을 정합니다.

문자열 장의 핵심은 텍스트가 단순한 바이트 배열이 아니며, Rust가 그 모호함을 타입과 메서드 선택으로 드러낸다는 점입니다.