TIL25 - 고차함수 map

future0159 1월 24일 AM 09:30 5 0
future0159 Profile Image Level 9
1

고차함수

swift에서 유용하게 사용할수 있는 함수로서, 전달인자로 함수를 전달받거나 함수 실행의 결과를 함수로 반환하는 함수이다. 기본적으론 map, filter, reduce가 있으며 이들은 스위프트 컨테이너 타입인(Array, Set, Dictionary등)에 구현되어 있습니다.

map

컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너를 생성한다. 기본적으로 컨테이너 타입은 스위프트에서는 collection 타입이 있다.
이들의 장점은 array 요소 하나하나를 동일한 방식으로 처리할 때, fo구문이 아닌 map이라는 메서드로 간단하게 처리할 수 있다. 이때 map 메서드를 사용한다면 전달인자가 클로저가 들어오게 되며 각각의 요소들을 변형해서 무엇으로 돌려줄 것인지 지정할 수 있다.

let numbers: [Int] = [0, 1, 2, 3, 4]
let multiNumber: [Int] = numbers.map({ (number: Int) -> Int in
    return number * 2
})

이때 변수를 var타입으로 지정해서 내부적인 값들을 바꿔주지 않고 상수타입을 통해서 바로 초기화가 가능하다는 장점이 있다.

let mul: [Int] = numbers.map { $0 * 2 } // [0, 2, 4, 6, 8]

클로저에서 배웠던 여러가지 기법들을 사용해줌으로써 깔끔한 클로저 모습으로 표현하는 것이 가능하다 .

댓글