2022. 9. 7. 00:59ㆍswift
고차 함수의 핵심은 함수인데 매개변수인데 클로저로 받는다
그리고 매개변수를 받은 클로저를 반환하는 식으로 값을 변화시키는 식
let numberList: [Int] = [1, 2, 3, 4]
var returnArray: [Int] = []
for number in numberList {
returnArray.append(number * 2)
}
print(returnArray) //[2, 4, 6, 8]
이러한 부분에 map을 쓰게 되면.
let returnArray = numberList.map({ (number : Int) -> Int in
return number * 2 }) //[2,4,6,8]
위와 똑같이 나타난다.
map을 사용하여 - 초기 빈 배열을 생성할 필요가없다
-시간을 절약할 수 있다.
map({ (number : Int) -> Int in number * 2 }) //return 생략. 단, 클로저 내부의 코드가 두 줄 이상이라면 return을 생략할 수 없다
map({ (number) -> Int in number * 2 }) //원 타입 생략
map({ (number) -> in number * 2 }) //반환 타입 생략
map({ $0 * 2 }) //매개변수 생략. 이때 $0은 1번째 매개변수라는 의미
map{ $0 * 2 } //후행 클로저. 괄호 생략 후 클로저만 뒤따르게 된다.
이런 식으로 map의 고차 함수를 사용하여 코드를 간소화할 수 있다.
하지만 과한 생략 시 가독성이 떨어지므로 이해하기가 어려울 수 도 있다.
'swift' 카테고리의 다른 글
What's new in Swift(wwdc2022) [2] (1) | 2022.09.08 |
---|---|
What's new in Swift(wwdc2022) [1] (1) | 2022.09.08 |
lazy var에 대해 알아보자 (0) | 2022.09.06 |
메모리 영역을 알아보자! (0) | 2022.07.25 |
함수(instance함수, class함수, static함수)알아보기! (0) | 2022.07.24 |