[Rust 공식문서 한국어 정리] 93. Rust Iterator 가이드
[Rust 공식문서 한국어 정리] 93. Rust Iterator 가이드
원문 제목: Trait std::iter::Iterator
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust의 Iterator 트레이트가 제공하는 지연 평가 반복 메커니즘을 상세히 다룹니다.
next 메서드와 반복자 어댑터를 활용하는 방법을 학습합니다.
소비 어댑터와 반복 어댑터의 차이와 체이닝 패턴을 정리합니다.
커스텀 반복자를 구현하는 방법과 Iterator 트레이트의 요구사항을 설명합니다.
Rust의 for 루프가 반복자와 어떻게 연동되는지도 함께 설명합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① next 메서드 — 다음 요소를 Option으로 반환
② 반복 어댑터 — map, filter, take 등 지연 평가 변환
③ 소비 어댑터 — collect, sum, fold 등 결과 산출
④ IntoIterator — for 루프와의 연동
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Iterator 트레이트는 next 메서드 하나만 구현하면 수십 가지 메서드를 자동으로 얻습니다.
next 메서드는 Some(item)을 반환하고 요소가 없으면 None을 반환합니다.
for item in iter 구문은 자동으로 IntoIterator::into_iter를 호출합니다.
map 어댑터는 각 요소에 함수를 적용하며 지연 평가되어 즉시 실행되지 않습니다.
filter 어댑터는 조건을 만족하는 요소만 통과시킵니다.
take(n) 어댑터는 앞에서 n개의 요소만 반환하고 반복자를 종료합니다.
skip(n) 어댑터는 앞에서 n개의 요소를 건너뛰고 나머지를 반환합니다.
enumerate 어댑터는 (인덱스, 요소) 쌍을 생성합니다.
zip 어댑터는 두 반복자를 묶어서 쌍으로 만듭니다.
chain 어댑터는 두 반복자를 순차적으로 연결합니다.
flatten 어댑터는 반복자의 반복자를 하나의 평면 반복자로 펼칩니다.
filter_map 어댑터는 map과 filter를 결합하여 Option을 반환하는 함수를 적용합니다.
find 메서드는 조건을 만족하는 첫 번째 요소를 Some으로 반환합니다.
any와 all 메서드는 조건의 충족 여부를 bool로 반환합니다.
fold 메서드는 누산기를 사용해 반복자의 모든 요소를 하나의 값으로 접습니다.
collect 메서드는 반복자를 Vec, HashMap, String 등의 컬렉션으로 변환합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
반복자 체이닝으로 복잡한 데이터 변환을 선언적으로 표현합니다.
파이프라인 패턴으로 가독성을 높이고 중간 컬렉션 생성을 피합니다.
collect로 최종 결과를 원하는 컬렉션 타입으로 변환합니다.
커스텀 데이터 구조에 Iterator를 구현하면 for 루프에서 바로 사용할 수 있습니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Iterator 트레이트는 Rust에서 시퀀스 처리의 핵심 추상화입니다.
지연 평가와 체이닝으로 효율적이고 표현력 높은 코드를 작성할 수 있습니다.
단 하나의 next 메서드 구현으로 수많은 강력한 기능을 무료로 얻습니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/iter/trait.Iterator.html
Iterator Methods: https://doc.rust-lang.org/std/iter/trait.Iterator.html
#Rust #Iterator #반복자 #번역

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