[Rust 공식문서 한국어 정리] 121. Rust String 타입 가이드
[Rust 공식문서 한국어 정리] 121. Rust String 타입 가이드
원문 제목: Struct std::string::String
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust의 String 타입이 제공하는 힙 기반 UTF-8 문자열을 상세히 다룹니다.
String과 &str의 차이, 소유권과 참조 관계를 학습합니다.
String의 생성, 수정, 검색, 변환 메서드 활용법을 정리합니다.
String이 Deref을 구현하여 &str 메서드를 투명하게 사용하는 원리를 설명합니다.
String의 메모리 레이아웃과 효율적인 사용법을 다룹니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① String — 힙 할당 가변 길이 UTF-8 문자열
② &str — 문자열 슬라이스(불변 참조)
③ Deref — String이 str 메서드를 대행
④ UTF-8 — Rust 문자열의 기본 인코딩
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String은 힙에 할당된 가변 길이 UTF-8 문자열입니다.
String::new()로 빈 문자열을 생성합니다.
String::from("literal")이나 "literal".to_string()으로 문자열 리터럴에서 생성합니다.
push_str은 문자열 슬라이스를 추가하고 push는 단일 char를 추가합니다.
+ 연산자는 String + &str 형태로 오른쪽 슬라이스를 소비하여 연결합니다.
format!("{}{}", a, b) 매크로로 여러 문자열을 안전하게 연결합니다.
String은 Deref을 구현하므로 &str의 모든 메서드를 직접 사용할 수 있습니다.
len()은 UTF-8 바이트 길이를 반환하며 문자 개수는 chars().count()로 세야 합니다.
is_empty()는 길이가 0인지 확인합니다.
clear()는 문자열을 비웁니다.
replace는 새 문자열을 반환하고 replacen는 치환 횟수를 제한합니다.
trim, trim_start, trim_end로 공백을 제거합니다.
split, lines, chars, bytes 등 다양한 반복자 메서드를 제공합니다.
into_bytes()는 Vec로 변환하고 into_boxed_str()은 Box로 변환합니다.
from_utf8은 Vec에서 UTF-8 검증을 거쳐 String을 생성합니다.
from_utf8_lossy는 잘못된 UTF-8을 �(replacement character)로 대체합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
가변 문자열이 필요할 때 String을 사용하고 불변 참조는 &str로 전달합니다.
format!으로 복잡한 문자열 포맷팅을 안전하게 수행합니다.
String::with_capacity로 미리 버퍼를 할당하여 반복 추가의 재할당을 줄입니다.
from_utf8_lossy로 외부 바이너리 데이터를 안전하게 문자열로 변환합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
String은 힙 기반 가변 UTF-8 문자열로 Rust의 대표적인 소유 타입입니다.
&str과의 관계를 이해하면 소유권과 참조를 효율적으로 활용할 수 있습니다.
UTF-8 기반으로 다국어 문자열을 안전하게 처리합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/string/struct.String.html
str primitive: https://doc.rust-lang.org/std/primitive.str.html
#Rust #String #UTF8 #힙문자열 #번역

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30