-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
💁🏻♂️ 10-1 : Swift의 map, filter, reduce에 대하여 설명해 주세요
- 스위프트는 함수를 일급 객체로 취급합니다. 그래서 함수를 매개변수로 사용할 수 있습니다.
- 매개변수로 함수를 갖는 함수를 고차 함수라고 부르는데, map, filter, reduce는 모두 고차함수에 속합니다.
- map은 초기값과 클로저를 전달 받아 전달받은 클로저를 실행하여 그 결과를 다시 반환해주는 함수입니다.
기존 데이터를 변형하지 않고 새로운 값을 반환합니다.
예를들어, 초기 값의 타입을 Int → String으로 변환할 때 사용할 수 있습니다. - filter는 컨테이너 내부의 값을 걸러서 추출하는 함수입니다.
조건에 맞는 값을 모아 map과 마찬가지로 새로운 컨테이너를 반환합니다.
예를들어, 초기 값이 Int인 경우 10이상인 값만 추출 할 때 사용할 수 있습니다. - reduce는 초기값을 하나의 값으로 합쳐주는 함수입니다.
reduce를 사용하여 배열의 모든 값을 합치는 경우 그 결과는 배열이 아닌 하나의 값으로 나오게 됩니다.
💁🏻♂️💁🏻♂️ map의 종류인 flatMap과 compactMap에 대해서 설명해 주세요
- 두 함수는 요소가 1차원 배열일 때 동일하게 동작합니다.
- 1차원 배열에서 클로저의 실행 결과가 옵셔널일 때,
nil인 경우 nil을 제거하고 옵셔널 바인딩 한 결과를 배열로 만들어 반환합니다.
하지만, 2차원 배열인 경우 nil을 제거하지않습니다. - flatMap은 결과를 1차원 배열로(flatten) 만들어내고,
compactMap은 2차원 배열 그대로 반환한다는 차이점이 있습니다.
Metadata
Metadata
Assignees
Labels
No labels