티스토리 뷰
반응형
Swift 고차함수에 대해 알아보겠습니다.
고차함수
- 다른 함수를 전달 인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수
- Swift의 함수는 1급객체이기 때문에 함수에 전달인자로 전달할수있고 함수의 결과값을 반환할수도있다.
map, filter, reduce
- Collection Type에 구현이 되있다.
map
- container 내부에 기존 데이터를 변경하여 새로운 컨테이너를 생성합니다.
let numbers = [1, 2, 3]
let mapArray = numbers.map { (number) -> Int in
return number * 2
}
print("map \(mapArray)") // map [2, 4, 6]
filter
- 컨테이너 내부의 값을 걸러서 새로운 컨테이너로 추출한다.
let intArray = [3,7,1,15,8]
let filterArray = intArray.filter { $0 > 5 } // 5보다 큰값을 새로운 컨테이너(filterArray)에 대입
print("filter \(filterArray)" ) // filter [7, 15, 8]
reduce
- 컨테이너 내부에 요소를 하나로 통합시켜준다.
- result -> 누적값 , element -> 배열의 요소값
let someArray = [1,2,3,4]
let reduceResult = someArray.reduce(0) {
(result: Int, element: Int) -> Int in
print("\(result) / \(element)")
// 0 / 1
// 1 / 2
// 3 / 3
// 6 / 4
return result + element // 전부 다 더해준다.
}
print("reduce \(reduceResult)") // reduce 10
반응형
'Swift > 문법' 카테고리의 다른 글
Swift 옵셔널 체이닝(Optional Chaining) (0) | 2022.02.14 |
---|---|
Swift 에러 처리 (0) | 2022.02.10 |
Swift Array(배열) 정리 (0) | 2022.02.08 |
Swift 프로토콜(Protocol) (0) | 2022.01.08 |
Swift 문법 정리 2 (0) | 2022.01.07 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 웹뷰
- autolayout
- WebView
- 라이트모드
- UIScrollView
- swipe
- subscript
- 다크모드
- Java
- SwiftUI
- dictionary
- string
- NavigationLink
- gcd
- SwiftLint
- Apple
- RxSwift
- Observable
- Swift
- ios
- Alamofire
- UIButton
- Realtime Database
- github
- remote config
- UITabBarController
- LazyHStack
- Firebase
- Android
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함