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]);