[Rust 공식문서 한국어 정리] 120. Rust Slice 타입 가이드
[Rust 공식문서 한국어 정리] 120. Rust Slice 타입 가이드
원문 제목: Primitive Type slice
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust의 슬라이스 타입이 제공하는 동적 길이 시퀀스 뷰를 상세히 다룹니다.
슬라이스와 배열, Vec의 관계와 슬라이스가 DST인 이유를 학습합니다.
슬라이스의 생성, 인덱싱, 분할, 메서드 활용법을 정리합니다.
&[T]와 &mut [T]의 차이와 슬라이스가 보장하는 메모리 연속성을 설명합니다.
슬라이스 패턴 매칭과 chunks, windows 등 고급 메서드를 다룹니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① [T] — 동적 길이 연속 메모리의 시퀀스(DST)
② &[T] — 불변 슬라이스 참조
③ &mut [T] — 가변 슬라이스 참조
④ fat pointer — 데이터 포인터 + 길이 정보
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
슬라이스 [T]는 동적 길이의 연속 메모리 영역을 나타내는 DST입니다.
슬라이스는 직접 변수로 사용할 수 없고 반드시 참조 뒤에 있어야 합니다.
&[T]는 데이터 포인터와 길이를 가진 fat pointer입니다.
Vec는 Deref를 구현하므로 &vec은 &[T]로 자동 변환됩니다.
배열 [T; N]도 &[T]로 자동 변환됩니다.
슬라이스 인덱싱은 범위 검사를 수행하며 초과 접근 시 패닉합니다.
.get(index)와 get_mut(index)는 안전하게 Option을 반환합니다.
슬라이스 분할은 [start..end] 구문으로 부분 범위를 얻습니다.
.split_at(index)는 인덱스 기준으로 슬라이스를 두 개로 분할합니다.
.split_first()와 split_last()는 첫/마지막 요소와 나머지를 분리합니다.
.chunks(n)은 n개씩 묶은 반복자를 생성합니다.
.windows(n)은 n개 윈도우가 한 칸씩 이동하는 반복자를 생성합니다.
.iter()와 iter_mut()은 슬라이스 요소의 참조 반복자를 생성합니다.
.sort()와 sort_unstable()로 슬라이스를 정렬합니다.
.binary_search()는 정렬된 슬라이스에서 이진 검색을 수행합니다.
swap, reverse, fill, clone_from_slice 등 다양한 메서드를 제공합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
함수 인자를 &[T]로 받아 Vec과 배열 모두 처리합니다.
슬라이스 분할로 데이터를 청크 단위로 처리합니다.
windows로 연속된 부분 배열을 순회하며 이동 평균 등을 계산합니다.
get으로 안전한 인덱스 접근을 하고 unwrap_or로 기본값을 제공합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
슬라이스 [T]는 연속 메모리의 동적 길이 뷰를 제공합니다.
&[T]는 fat pointer로 Vec과 배열 모두에 투명하게 동작합니다.
풍부한 메서드로 시퀀스 처리의 기본 단위로 활용됩니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/primitive.slice.html
Slice Methods: https://doc.rust-lang.org/std/primitive.slice.html
#Rust #Slice #슬라이스 #DST #번역

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