본문 바로가기

iOS/Swift

[Swift] Map 알아보기

Map

자기 자신을 호출할 때 매개변수로 전달된 함수를 실행하여 결과를 반환하는 함수로, Sequence, Collection 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있다.

let numbers : [Int] = [0, 1, 2, 3, 4]
var squareNumber = numbers.map({(number : Int) -> Int in return number * number})
print(squareNubmer)
//[0, 1, 4, 9, 16]

for-in 구문으로 사용할 수 있지만, 그렇게 되면 시간복잡도나 코드의 깔끔함 부분에서 차이를 보이기 때문에 간결하게 쓰기 좋다.

클로저의 사용

클로저 표현으로 map을 더 쉽게 활용할 수 있다.

let numbers : [Int] = [0, 1, 2, 3, 4]
// 아래 세 가지 방식으로 사용할 수 있다. 
// 기본
var squareNumber = numbers.map({ return $0 * $0}) 
// return 생략
var squareNumber = numbers.map({ $0 * $0}) 
// 후행 클로저 사용
var squareNumber = numbers.map{ $0 * $0} 


print(squareNumber)
// [0, 1, 4, 9, 16]