하루를살자

Swift 고차함수 본문

Swift

Swift 고차함수

Kai1996 2022. 2. 5. 23:23

일단 고차함수을 이해하기 위해선 Swift 의 일급객체 인 일급함수의 특성과 클로저 사용법을 먼저 이해 해야지 고차함수 를 쉽게 받아드릴수 있기에, 이둘의 계념과 어떻게 사용되는지 공부를 해야합니다.

고차함수를 사용하게 되면

- 스위프트 를 다루는 기술이 향상된다.

- 코드의 가독성을 높혀준다.

- 더욱 함수형 프로그래밍 언어 답게 된다.

고차 함수란?

func addition (num1:Int, num2:Int) -> Int  {
    return num1 + num2
}
func subtraction (num1:Int, num2:Int) -> Int {
    return num1 - num2
}

func calculator (operation: (_ num1:Int, _ num2:Int) -> Int, num1:Int, num2:Int ) -> Int{
    return operation (num1,num2)
}
print(calculator(operation: addition, num1: 1, num2: 2))
// prints 3

첫번째와 두번째 메소드 addition 과 subtraction 은 (Int,Int) -> Int이라는 두개의 인자값을 받아서 더하거나 빼고 그 값을 반환해 주는 함수 타입을 가지고 있습니다. 세번째 메소드는 고차함수로써, 일급 함수의 특징인 함수를 매개변수로 받고, 함수를 반환해주고 있습니다. 첫번째로 들어온 매개변수를 두번째와 세번째로 넘어온 매개변수 num1, num2operation 의 매개변수로 지정, 반환해주고 있습니다. 반환된 함수는 마지막줄에 함수를 호출해주는 줄에서 지정한것처럼, addition 함수를 호출하게 되고, 그함수의 반환값이 프린트 되어 집니다.

이렇듯, 함수를 인자로 받거나 결과로 함수를 반환하는 함수를 고차 함수라고 일컫습니다.

Swift 는 기본적으로 몇가지 고차함수를 제공하는데, 그중 대표적인 함수들은 다음과 같습니다.
- map
- reduce
- filter
위 고차함수들은 매개변수로 클로저를 사용하고, swift 의 Collection 타입인 Array, Set , Dictionary 에 사용 가능합니다.
다음 포스트에서 위 3가지 고차함수들을 자세히 공부 해보도록 하겠습니다.

'Swift' 카테고리의 다른 글

Swift - Closure (2) : Trailing Closure  (0) 2022.02.27
Swift - Closure (1): 표현식  (0) 2022.02.27
Swift - Collection Types  (0) 2022.01.01
Swift - Enum  (0) 2021.12.31
Swift - Optionals  (0) 2021.12.21
Comments