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

compactMap은 Swift의 고차 함수 중 하나로, 배열이나 컬렉션에서 nil이 아닌 값을 추출하고 변환하는 데 사용됩니다. 이 함수는 매우 유용한 기능을 제공하여 코드를 더욱 간결하고 효율적으로 작성할 수 있게 도와줍니다.

사용법:

let numbers = [1, 2, 3, nil, 4, nil, 5]

let filteredNumbers = numbers.compactMap { $0 }

위의 예시에서 numbers 배열은 정수들과 nil 값을 포함하고 있습니다. compactMap을 사용하여 nil이 아닌 값들을 추출하면 filteredNumbers 배열에는 [1, 2, 3, 4, 5]가 저장됩니다.

compactMap은 클로저를 인자로 받으며, 클로저 내에서 값에 대한 변환을 수행하거나 필터링을 할 수 있습니다. 이 함수는 배열이나 컬렉션의 원소를 반복하면서 클로저를 호출하고, 클로저의 결과가 nil이 아닌 경우에만 해당 값을 새로운 배열에 추가합니다.

예시:

let names = ["John", "Jane", "Steve", "Alex", "Sarah", "Jessica"]

let uppercaseNames = names.compactMap { $0.uppercased() }

위의 예시에서는 names 배열의 문자열들에 대해 대문자로 변환하여 uppercaseNames 배열에 저장합니다. 결과는 [“JOHN”, “JANE”, “STEVE”, “ALEX”, “SARAH”, “JESSICA”]가 됩니다.

compactMap 함수를 사용하면 값이 nil인 것들을 간결하게 필터링하거나, 타입 변환이 필요한 작업을 편리하게 수행할 수 있습니다. 이를 통해 Swift 코드의 가독성과 유지 보수성을 높일 수 있습니다.

더 많은 정보는 Swift 공식 문서를 참조하시기 바랍니다.