Swift/Swift 기초문법
[Swift 기초문법 - 24] 고차함수 Higher Order Function
힛해
2024. 8. 14. 04:45
728x90
고차함수란?
함수인데 매개변수로 클로저를 받고 매개변수로 받은 클로저로 값을 변환하거나 반환하는 함수
사용예시
func getName(_name: STring) -> String{
return "내 이름은 \(name)"
}
var getNameClosure : (String) -> String
// completion이라는 클로저를 매개변수로 받고
func sayHello(completion : (String) -> String, name : String) -> String{
// 클로저를 반환값으로 받는다.
return completion(name)
}
let resultOne = sayHello(completion : getName(_:), name : "자우림")
// print 내 이름은 자우림
클로저가 매개변수이자 return값으로 사용되는데 이와 같은 형식을 고차함수라고 말한다.
프로젝트 사용예시
map을 살펴보자
map이라는 inlinalbe 메소드가 매개변수를 클로저에 담아 형태를 바꿔 결과를 내뱉는 형식
=> 고차함수
drop을 살펴보자
prefix도 유사한 형태로 프로그래밍되어있다.
보통 컬렉션에서 고차함수를 사용한다.
let numbers = [3,5,6,7]
let stringNumbers = numbers.map { (aNumber : Int) -> String in
return "\(aNumber)입니다"
}
// 숫자로 되어있던 배열들이 [3입니다,5입니다, ...] 으로 변환
let evenNumers : [Int] = numbers.filter { aNumber in
return aNumber % 2 == 0
}
// 짝수인 요소들만 가져옴
이런 것들을 고차함수라고 이야기한다.
정리하자면
매개변수로 클로저를 받아서 값을 내뱉은 함수.