고차함수
배우기
03 고차함수 활용
고차함수

고차함수(Higher-order function)는 '다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수'를 뜻합니다.

스위프트의 함수(클로저)는 일급시민이기 때문에 함수의 전달인자로 전달할 수 있으며, 함수의 결과값으로 반환할 수 있습니다.

이번 시간에는 스위프트 표준라이브러리에서 제공하는 유용한 고차함수에 대해 알아봅니다.

  • map
  • filter
  • reduce

map, filter, reduce 함수는 스위프트 표준 라이브러리의 컨테이너 타입(Array, Set, Dictionary 등)에 구현되어 있습니다.

map

map함수는 컨테이너 내부의 기존 데이터를 변형(transform)하여 새로운 컨테이너를 생성합니다.

filter

filter함수는 컨테이너 내부의 값을 걸러서 새로운 컨테이너로 추출합니다.

reduce

reduce함수는 컨테이너 내부의 콘텐츠를 하나로 통합합니다.


동영상 내용 수정

reduce 메서드에 전달하는 클로저의 매개변수 이름을 first, second 보다는 result, currentItem과 같은 이름으로 정정하는 것이 좋겠습니다. 첫 번째 매개변수는 초깃값으로부터 출발하여 마지막 요소까지 순회하는 내내의 결괏값입니다. currentItem은 현재 순회하고 있는 요소의 값을 뜻합니다. 결국 return result + currentItem이라고 표현한다면 이제까지 더해진 결괏값에 이번 요소의 값을 더한다는 뜻이 되겠습니다.


더 알아보기

flatMap

실습 내용

클로저 문법이 선행되어야 합니다. 

세 고차함수의 동작이 이해될 때까지 연습해 보세요 :)

질문하기
추가 자료
no files uploaded

추가 자료가 없습니다

여기서 새로운 학습 자료를 확인하세요!
선생님이 추가한 자료들을 바로 확인할 수 있어요.