공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
고차 함수 : 전달 인자로 함수를 전달 받거나, 함수 실행의 결과로 함수를 반환하는 함수를 말합니다.
swift3 에서는 map, filter, reduce 고차 함수를 기본으로 제공합니다.
- map : 컨테이너 내부의 기존 데이터를 변형해 새로운 컨테이너를 생성합니다.
let num : [Int] = [10, 20, 30, 40, 50]예제) for in 문과 비교
1. for in 문 사용
for i in num {
twoTimesNum.append( i*2 )
}
2. map 사용
twoTimesNum = num.map( { (number : Int) -> Int in
return number * 2
})
후행 클로저 사용으로 간단히 표현할 수 도 있습니다.
twoTimesNum = num.map { $0 * 2 }
- filter : 컨터이너 내부의 값을 걸러서 새로운 컨테이너로 호출
예제) for in 문과 비교
var filters : [Int] = [Int]()
1. for in 문 사용
for i in num {
if i % 2 == 0 {
return filters.append( i )
}
}
2. filter 사용
let evens : [Int] = num.filter {
(number : Int) -> Bool in
return number % 2 == 0
}
마찬가지로 후행 클로저 사용으로 간단히 표현 가능합니다.
let odds : [Int] = num.filter { $0 %2 == 0 }
- reduce : 컨테이너 내부의 콘텐츠를 하나로 통합합니다.
let nums : [Int] = [ 2, 5, 9 ]
var result : [Int] = 0
1. for in 문 사용
for i in nums {
result += i
}
2. reduce 사용
let sum : Int = nums.reduce(초기값, {
( i : Int, j : Int) -> Int in
return i + j
}
이상입니다.
'Swift3(스위프트3)' 카테고리의 다른 글
swfit3 스위프트3 for var i = 0; i < 10; i += 1 {} 반복문 swift3 부터 없어졌네요. (0) | 2017.07.26 |
---|---|
Mac 에서 swift version check 스위프트 버전 확인하기 (0) | 2017.07.20 |
swift3 스위프트3 오류처리 throws (0) | 2017.07.14 |
swift3 스위프트3 익스텐션(extension) (0) | 2017.07.12 |
swift3 스위프트3 protocol 프로토콜, 프로토콜 상속에 대해 (0) | 2017.07.12 |