728x90
반응형
야곰 스위프트 프로그래밍 책을 읽으며 기억해둘 문법을 정리합니다.
맵, 필터, 리듀스
맵
- 맵을 사용하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 다시 컨테이너에 포장하여 반환한다
- 맵은 기존 데이터를 변형(transform)하는 데 많이 사용한다
필터
- 컨테이너 내부의 값을 걸러서 추출, 새로운 컨테이너에 값을 담아 반환한다, 기존 콘텐츠를 변형 X
리듀스
- 결합(combine)이라고 불려야 마땅한 기능, 컨테이너 내부의 콘텐츠를 하나로 합하는 기능 실행
- 두가지 형태로 구현, 첫 번째 리듀스는 클로저가 각 요소를 전달받아 연산한 후 다음 클로저 실행을 위해 반환하며 컨테이너를 순환하는 형태
func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result
https://developer.apple.com/documentation/swift/array/2298686-reduce
- 두 번째 리듀스 메서드는 컨테이너를 순환하며 클로저가 실행되지만 클로저가 따로 결괏값을 반환하지 않는 형태
func reduce<Result>(into initialResult: Result, _ updateAccumulatingResult: (inout Result, Element) throws -> ()) rethrows -> Result
https://developer.apple.com/documentation/swift/array/3126956-reduce
반응형
'Programming > Swift' 카테고리의 다른 글
RxSwift _ subscribe, bind, driver 차이 (0) | 2022.03.11 |
---|---|
[Swift] 문법 다시보기 - 서브스크립트 (subscript) (0) | 2021.10.15 |
[Swift] 문법 다시보기 - 클로저(closure) (0) | 2021.10.14 |
[Swift] 문법 다시보기 - 인스턴스 생명 및 소멸, 접근제어 (0) | 2021.10.13 |
[Swift] 문법 다시보기 - 메서드 (0) | 2021.10.13 |