IOS개발: SWIFT/3. 함수의 세계로

Swift 고차 함수: map, filter, reduce, sort 등

_Blue_Sky_ 2024. 9. 12. 15:18
728x90
728x90

Swift의 고차 함수: map, filter, reduce, sort 심층 분석

Swift는 함수형 프로그래밍의 개념을 적극적으로 도입하여 코드를 더욱 간결하고 표현력 있게 만들 수 있도록 지원합니다. 그 중에서도 map, filter, reduce, sort 등의 고차 함수는 배열을 다룰 때 매우 유용하게 활용되는 도구입니다.

고차 함수란 무엇인가?

고차 함수는 함수를 인자로 받거나 함수를 반환하는 함수를 의미합니다. Swift에서 고차 함수를 사용하면 코드의 재사용성을 높이고, 복잡한 연산을 간결하게 표현할 수 있습니다.

주요 고차 함수

1. map

  • 정의: 배열의 각 요소에 주어진 함수를 적용하여 새로운 배열을 생성합니다.
  • 용도: 배열의 모든 요소를 변환하고 싶을 때 사용합니다.
  • 예시:
    let numbers = [1, 2, 3, 4, 5]
    let doubledNumbers = numbers.map { $0 * 2 } // [2, 4, 6, 8, 10]
    

2. filter

  • 정의: 주어진 조건을 만족하는 요소들만 추출하여 새로운 배열을 생성합니다.
  • 용도: 특정 조건에 맞는 요소만 골라내고 싶을 때 사용합니다.
  • 예시:
    let numbers = [1, 2, 3, 4, 5]
    let evenNumbers = numbers.filter { $0 % 2 == 0 } // [2, 4]
    
     

3. reduce

  • 정의: 배열의 모든 요소를 하나의 값으로 축소합니다.
  • 용도: 배열의 모든 요소를 합치거나, 최댓값, 최솟값을 찾는 등의 작업에 사용합니다.
  • 예시:
    let numbers = [1, 2, 3, 4, 5]
    let sum = numbers.reduce(0, +) // 15
    
     

4. sort

  • 정의: 배열의 요소를 특정 기준에 따라 정렬합니다.
  • 용도: 데이터를 정렬하여 원하는 순서로 배치하고 싶을 때 사용합니다.
  • 예시:
    let names = ["apple", "banana", "orange"]
    let sortedNames = names.sorted() // ["apple", "banana", "orange"]
    

고차 함수 활용 예시

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

// 짝수만 필터링하고, 각 요소에 2를 곱한 후, 합계를 구하기
let result = numbers
  .filter { $0 % 2 == 0 }
  .map { $0 * 2 }
  .reduce(0, +)
print(result) // 12
 

위 예시처럼 고차 함수를 연속적으로 사용하여 복잡한 연산을 간결하게 표현할 수 있습니다.

고차 함수의 장점

  • 코드 가독성 향상: for 루프를 사용하는 것보다 더 간결하고 명확하게 코드를 작성할 수 있습니다.
  • 재사용성: 한 번 정의한 고차 함수를 다양한 상황에서 재사용할 수 있습니다.
  • 함수형 프로그래밍 패러다임: 함수형 프로그래밍의 장점을 활용하여 더욱 강력하고 유연한 코드를 작성할 수 있습니다.

결론

Swift의 고차 함수는 배열을 다룰 때 매우 강력한 도구입니다. map, filter, reduce, sort 등의 함수를 효과적으로 활용하면 코드의 가독성을 높이고, 복잡한 연산을 간결하게 표현할 수 있습니다. Swift 개발에 있어서 고차 함수는 필수적인 도구라고 할 수 있습니다.

728x90
728x90