고차함수란?
다른 함수를 전달 인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수
스위프트에서 제공하는 고차함수
- map
- filter
- reduce
//map 컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너를 생성
let numbers = [0,1,2,3] //[0,1,2,3]
let mapArray = numbers.map { (number) -> Int in //[0,2,4,6]
return number * 2
}
print("map \(mapArray)") //"map [0, 2, 4, 6]\n"
//filter 컨테이너 내부의 값을 걸러서 새로운 컨테이너로 추출
let intArray = [10,5,20,13,4] //[10, 5, 20, 13, 4]
let filterArray = intArray.filter { $0 > 5 }
print("filter \(filterArray)") //"filter [10, 20, 13]\n"
//reduce 컨테이너 내부의 요소를 하나로 통합
let someArray = [1,2,3,4,5] //[1, 2, 3, 4, 5]
let reduceResult = someArray.reduce(0) { //15
(result: Int, element: Int) -> Int in
print("\(result) + \(element)")
return result + element
}
print("reduce \(reduceResult)") //"reduce 15\n"
'개발 > Ios(Swift)' 카테고리의 다른 글
IOS 스위프트(Swift) 문법 - 클로저 (0) | 2021.08.26 |
---|---|
IOS 스위프트(Swift) 문법 - try-catch (0) | 2021.08.25 |
IOS 스위프트(Swift) 문법 - 옵셔널 체이닝 (0) | 2021.08.25 |
IOS 스위프트(Swift) 문법 - 열거형 (0) | 2021.08.25 |
IOS 스위프트(Swift) 문법 - 익스텐션 (0) | 2021.08.25 |