Swift 언어
이터레이터의 이터레이터
[[1, 2], [], [3], [4, 5, 6]]처럼 '컬렉션의 컬렉션'을 받아 평평한 순서(1, 2, 3, 4, 5, 6)로 하나씩 꺼내 주는 이터레이터를 어떻게 설계하겠습니까? for-in에서 그대로 쓸 수 있어야 합니다.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
[[1, 2], [], [3], [4, 5, 6]]처럼 '컬렉션의 컬렉션'을 받아 평평한 순서(1, 2, 3, 4, 5, 6)로 하나씩 꺼내 주는 이터레이터를 어떻게 설계하겠습니까? for-in에서 그대로 쓸 수 있어야 합니다.
IteratorProtocol을 채택한 struct가 바깥 이터레이터와 현재 안쪽 이터레이터를 상태로 갖고, next()에서 안쪽이 소진되면 다음 안쪽을 가져온다. Sequence 래퍼의 makeIterator()로 for-in 지원.
Swift 언어객관식기초
lazy var 저장 프로퍼티에 대한 설명으로 맞는 것을 모두 고르세요.
#lazy
Swift 언어주관식기초
Array를 확장해 표준 라이브러리의 compactMap과 같은 동작을 하는 myCompactMap을 직접 구현해 보세요. 제네릭 시그니처는 어떻게 잡겠습니까?
#generics
Swift 언어주관식기초
코드 리뷰 중 func larger(_ a: Int, _ b: Int) -> Int, larger(_ a: Double, _ b: Double) ->…
#generics
Swift 언어주관식심화
물음표 옵셔널 문법도 표준 Optional도 없다고 가정해 봅시다. '값이 있거나 없거나'를 표현하는 타입을 Swift로 직접 설계한다면 어떻게 정의하겠습니까?
#generics