Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- apple developer academy 후기
- iOS 개발 오류
- 애플 디벨로퍼 아카데미 후기
- 운영체제
- 제앱소
- 애플 디벨로퍼 아카데미
- react
- Swift 문법
- StateObject
- 애플 디벨로퍼 아카데미 21주차 회고
- ObservableObject
- ObservedObject
- useReducer
- 치지직
- global soop
- sqoop
- 네이버 치지직
- OS
- Swift 디자인패턴
- 데이터베이스 공부
- 앱 비교 프로젝트
- 네이버 부스트캠프
- Apple Developer Academy @ POSTECH
- Swift 기능
- 애플 아카데미 후기
- SWIFT
- swift문법
- 숭실대
- 데이터베이스
- 소프트웨어분석및설계
Archives
- Today
- Total
사과하는 제라스
[Swift 문법] 고차함수 with 클로저 본문
목차
728x90
반응형
고차함수가 뭘까?
일단, 고차함수는 다른 함수를 매개변수로 받거나 함수 실행의 결과를 함수로 반환하는 함수다.
코드를 한번 보자.
// 이런 함수가 있다고 하자.
func getName(_ name: String) -> String {
return "내 이름은 \(name)"
}
// 이 함수를 클로저 형태로 보면 이런 식으로 될 것이다.
var getNameClosure : (String) -> String
// sayHello라는 함수를 만들고 해당 함수에는 매개변수로 클로저를 두자. 여기에는 나중에 getName이란 함수를 넣어볼 거다.
func sayHello( getName: (String) -> String, name: String) -> String {
return getName(name)
}
// getName 매개변수에 getName함수를 넣는다.
let resultOne = sayHello(getName: getName, name: "제라스")
// getName 함수는 위처럼 해도 되고, 이렇게 매개변수를 비워놔도 된다.
let resultOne = sayHello(getName: getName(_:), name: "제라스")
이런 식으로 하는건데,
Swift 표준 라이브러리에는 주로 3가지의 고차함수를 많이 쓴다.
1. map: 주어진 배열 원소들에 각각 적용함.
2. filter: 주어진 배열 중 조건에 맞는 것만 추출함.
3. reduce : 주어진 배열을 모두 더함.
다른 것 중엔 sort, sorted도 있다.
1. sort: 해당 배열을 정렬함.
2. sorted: 해당 배열을 정렬했을 때의 배열을 리턴함.
arr = [1,2,3,4,5]
// 오름차순 sort
arr.sort()
// 오름차순 sorted
arr.sort(by: >)
// 내림차순 sort
var sortedArr = arr.sorted()
// 내림차순 sorted
var descendingSortedArr = arr.sorted(by: >)
728x90
반응형
'제라스의 iOS 공부 > Swift 문법' 카테고리의 다른 글
[Swift 문법] compactMap이란? (0) | 2023.08.18 |
---|---|
[Swift 문법] class func와 static func (0) | 2023.08.18 |
[Swift 문법] inout 메소드 매개변수 (0) | 2023.08.17 |
[Swift 문법] 딕셔너리 타입 초기화 방법 (0) | 2023.08.17 |
[Swift 문법] Closure를 알아보자! (0) | 2023.08.17 |