728x90
반응형
안녕하세요! 이웃님들!!
오랜만에 스위프트 기초문법에 관한 내용을 가지고 돌아왔습니다!!
오늘은 <고차 함수>에 대해서 포스팅해보겠습니다! 바로 출발하시죠!
- 고차함수 -
- 매개 변수로 함수를 받거나, return값으로 함수를 반환할 수 있는 함수를 뜻합니다!
- Closure형태로 사용이 됩니다!
- for _ in 문, if _ else 문의 연산을 보다 간편하고 깔끔하게 코드를 작성할 수 있습니다.
- 대표적으로 map, filter, reduce가 있습니다!
1. map
- 매개 변수로 전달된 함수를 실행 -> 그 return 값을 다시 반환해주는 함수
- 새로운 데이터가 생성되어 반환되기 때문에, 기존 데이터는 변경되지 않습니다!
- 배열의 append 연산을 안해줘도 됩니다.
- 빈 배열을 미리 선언해 줄 필요도 없습니다!
- 5-6줄의 코드가 1-2줄로 줄일 수 있어 간결하고 편리하게 연산을 실행할 수 있습니다
예를 들어, Alamofire와 SwiftyJSON을 이용해 데이터 통신을 이용해 API를 불러온다고 하면, 아래와 같이 표현할 수 있습니다.
2. filter
- 매개 변수로 전달된 함수를 실행 -> 특정 조건에 맞게 실행된 결과를 반환
- Bool 타입을 return 값으로 가진다!
- 기존 데이터 내부의 값을 특정 조건에 맞춰 걸러서 추출하는 역할.
- 🍎 <$0, $1, $2, $3, ...> 은 클로저의 축약된 인자 이름으로 < 첫 번째 값, 두 번째 값, 세 번째 값... >을 의미합니다.
ex.1 ) 학점이 4.0 이상인 학생을 찾고 싶은 경우.
'newStudent', 'filterStudent1', 'filterStudent2'는 다 같은 결과 값을 가진다!!
ex.2 ) 영화 리스트에서 특정 감독의 영화를 고르고 싶은 경우
- movieResult는 value 값이 "김한민" 감독인 영화의 key와 value값을 모두 출력해준다.
- moiveResult2는 value 값이 "김한민" 감독인 영화의 제목(key) 값만 출력하기 위해 map을 사용하였다.
3. reduce
- 기존 데이터를 하나로 합치는 기능을 실행한다!
- 초기값 지정이 필요합니다. 만약 초기값이 없다면 0으로 설정된다.
ex) 11개 과목의 평균을 내고 싶은 경우, 11개 과목의 점수를 하나로 합쳐서 나눈다!
이상 이번 포스팅은 여기서 마치겠습니다!
고차함수에 관한 내용은 어려우니 한 번에 이해하기 어려울 겁니다!!
개발하는 윤기사는 오늘도 빡코딩해서 여러분들에게 알찬 정보를 드리기 위해 노력하겠습니다!!
728x90
반응형
'Swift 기초 문법 👊' 카테고리의 다른 글
[Swift_문법] String 문자열 뒤집기 (Feat. 디바이스 MAC 주소 뒤집기) _ 13 (0) | 2023.08.03 |
---|---|
[Swift_문법] Subscript (Index out of range 해결🌈) _ 12 (31) | 2022.11.03 |
[Swift_문법] 부족했던 내용 추가 공부하는 윤기사 _ 10 (31) | 2022.06.17 |
[Swift_문법] Inheritance(상속)에 대해 진심으로 알아보는 윤기사_9 (31) | 2022.06.02 |
[Swift_문법] Methods에 대해 한번 알아보는 윤기사_8 (1) | 2022.05.31 |