Rust

Iterators & Closures

Iterator 트레이트, iterator 어댑터(map, filter, fold), closure 구문, move closures, Fn 트레이트

22 면접 질문·
Mid-Level
1

Rust의 for 루프에서 사용할 수 있으려면 타입이 어떤 트레이트를 구현해야 하나요?

답변

IntoIterator 트레이트는 타입을 이터레이터로 변환할 수 있게 해줍니다. for 루프는 표현식에 대해 자동으로 into_iter()를 호출합니다. Vec, 배열, range 같은 타입은 기본적으로 이 트레이트를 구현하므로 for로 직접 순회할 수 있습니다.

2

Iterator 트레이트의 어떤 메서드를 반드시 구현해야 하나요?

답변

next() 메서드는 Iterator 트레이트에서 유일하게 필수인 메서드입니다. Option<Self::Item>을 반환하며, 남은 요소가 있으면 Some(item), 반복이 끝나면 None을 반환합니다. map, filter, collect 같은 다른 모든 메서드는 next()에 기반한 기본 구현을 가지고 있습니다.

3

Vec<T>에서 iter(), iter_mut(), into_iter()의 차이점은 무엇인가요?

답변

iter()는 불변 참조(&T)에 대한 이터레이터를 반환하고, iter_mut()는 가변 참조(&mut T)에 대한 이터레이터를 반환하며, into_iter()는 Vec를 소비하고 요소를 값(T)으로 반환합니다. 선택은 요소를 읽을지, 수정할지, 소유권을 가져올지에 따라 달라집니다.

4

Rust에서 lazy 이터레이터란 무엇이며 왜 중요한가요?

5

두 개의 i32 매개변수를 받아 그 합을 반환하는 closure를 정의하는 올바른 구문은 무엇인가요?

+19 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기