Daily iOS
Swift 언어

compactMap 직접 구현

Array를 확장해 표준 라이브러리의 compactMap과 같은 동작을 하는 myCompactMap을 직접 구현해 보세요. 제네릭 시그니처는 어떻게 잡겠습니까?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

Array 확장에 제네릭 파라미터 T 하나만 선언하고, 요소를 받아 옵셔널 T?를 반환하는 클로저를 인자로 받아 [T]를 돌려주는 시그니처로 잡는다. 입력 타입은 Array의 Element가 이미 제공하므로 결과 타입만 제네릭이면 되고, 본문은 요소마다 클로저를 호출해 nil이면 제외하고 값만 append한다.

받은 질문 공유