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
'IOS개발: SWIFT > 3. 함수의 세계로' 카테고리의 다른 글
Swift 클로저: 클로저의 기본 개념, 인라인 클로저, 트레일링 클로저, 캡처 리스트 (0) | 2024.09.12 |
---|---|
Swift 함수 정의와 호출: 인자, 반환값, 함수 오버로딩 (0) | 2024.09.12 |