FromIterator

FromIterator (반복자로부터의 변환 트레이트)

Iterator로부터 타입을 생성하는 방법을 정의하는 트레이트예요. 컬렉션을 반복자로부터 만드는 데 쓰여요.

출처: Rust 공식 문서

본문

타입에 FromIterator를 구현하면 그 타입이 반복자로부터 어떻게 생성되는지 정의하게 돼요. 이는 어떤 컬렉션을 나타내는 타입에서 흔히 볼 수 있어요.

반복자의 내용으로부터 컬렉션을 만들고 싶다면 Iterator::collect() 메서드를 쓰는 것이 권장돼요. 하지만 컨테이너 타입을 명시해야 할 때는 터보피시(예: ::>())를 쓰는 것보다 FromIterator::from_iter()가 더 읽기 쉬울 수 있어요. 사용 예시는 Iterator::collect() 문서를 참고하세요.

시그니처는 다음과 같아요.

pub trait FromIterator<A>: Sized {
    // 필수 메서드
    fn from_iter<T>(iter: T) -> Self
       where T: IntoIterator<Item = A>;
}

예시

기본 사용법:

let five_fives = std::iter::repeat(5).take(5);

let v = Vec::from_iter(five_fives);

assert_eq!(v, vec![5, 5, 5, 5, 5]);

더 알아보기 (Learn more)

Rust 공식 문서