티스토리 뷰
고차함수 (Higher order function)
- 함수를 파라미터로 사용하거나, 함수 실행 결과를 함수로 리턴하는 함수이다.
- 즉 Input = 함수 또는 output = 함수
- parameter = 함수 또는 return = 함수
- 파라미터로 함수가 사용될 때에는 보통 클로저 형태로 나타낸다.
- 매개변수를 생략하여 $0으로 나타낼 수 있다.
- 코드가 한 줄일 때, return 키워드를 생략하여 표현하는 것이 일반적이다.
- 즉 Input = 함수 또는 output = 함수
고차함수는 왜 필요할까?
- 대부분 함수형 프로그래밍에서 사용하는 형태이다.
- map, filter, reduce를 많이 사용한다.
- forEach, compactMap, flatMap도 존재
- sequence, collection 프로토콜을 따르는 컬렉션에 기본적으로 구현되어있다.
- 배열, 딕셔너리, 세트가 포함된다. (옵셔널도)
언제 사용할 수 있을까?
- 서버에서 값을 가져오고, 각 데이터를 처리할 때 편리하게 변형할 수 있다.
고차함수 미리보기!
map : 기존 배열의 각 아이템을 매핑해서 새로운 배열을 리턴한다.
filter : 배열의 각 아이템을 조건에 맞는 아이들만 걸러서 새로운 배열을 리턴한다.
reduce : 배열의 아이템들을 계산해서 단 하나의 값으로 리턴한다.
forEach : 각 아이템을 가지고 반복문을 수행한다.
compactMap : 배열의 아이템을 새롭게 매핑하는데, 옵셔널을 제거하여 새로운 배열을 리턴한다.
flatMap : 중첩된 배열을 하나의 배열로 바꿔서 리턴한다. (2차원 -> 1차원 배열로, 3차원 -> 2차원 배열로)
'Swift > Swift 문법' 카테고리의 다른 글
[고차함수 3] filter (0) | 2022.12.29 |
---|---|
[고차함수 2] Map (0) | 2022.12.29 |
[클로저 - 5] @escaping, @autoclosure 키워드 (0) | 2022.12.29 |
[클로저 - 4] 클로저의 캡처 (0) | 2022.12.29 |
[클로저 - 3] 클로저 문법 최적화 (0) | 2022.12.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- do while
- 반복문
- replit
- baekjoon
- 정답
- for문
- 프로그래머스
- 리플릿
- 깃
- Code up
- 기초 100제
- CHR
- 코드업
- 깃허브
- CodeUp
- 시간초과
- 레플릿
- SwiftUI
- 코드 업
- 설명
- level1
- 백준
- 16진수 입력
- COMMIT
- 파이썬
- python
- ord
- 이것이 코딩테스트다
- Swift
- 부르트포스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함