[swift] map 고차 함수의 사용법과 예시는 어떻게 되나요?

map 함수의 기본 문법은 다음과 같습니다.

func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]

여기서 Element는 컨테이너의 요소 타입을 나타내며, T는 연산 결과로 반환할 타입을 나타냅니다. transform은 각 요소에 적용할 클로저 또는 함수를 전달하는 매개변수입니다.

아래는 map 함수를 사용한 예시입니다.

let numbers = [1, 2, 3, 4, 5]
let doubledNumbers = numbers.map({ $0 * 2 })
print(doubledNumbers) // [2, 4, 6, 8, 10]

위의 예시에서 numbers 배열의 각 요소에 2를 곱한 결과를 doubledNumbers 배열로 반환하였습니다. 클로저 내부에서 $0은 배열의 각 요소를 나타내며, 이를 곱셈 연산으로 처리하였습니다.

또한, map 함수는 연산 결과를 새로운 컨테이너로 반환하기 때문에, 기존 컨테이너와 요소의 개수는 동일하지만 타입이 다를 수 있습니다. 예를 들어, 문자열 배열의 각 요소를 대문자로 변환하는 경우 다음과 같이 사용할 수 있습니다.

let names = ["john", "steve", "anna"]
let uppercasedNames = names.map({ $0.uppercased() })
print(uppercasedNames) // ["JOHN", "STEVE", "ANNA"]

map 함수를 사용하면 간단하게 요소별로 동일한 연산을 수행할 수 있으며, 해당 연산 결과로 새로운 컨테이너를 생성할 수 있습니다.

더 자세한 내용은 Swift 공식 문서를 참고하시기 바랍니다.