Filter
Filter는 배열의 각 요소에 대해 주어진 조건을 적용하여 새로운 배열을 생성하는 고차 함수입니다. 주어진 조건에 부합하는 요소만 새로운 배열에 포함됩니다.
Filter 사용 예시
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// 짝수만 포함하는 새로운 배열 생성
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers) // [2, 4, 6, 8, 10]
// 5보다 큰 수만 포함하는 새로운 배열 생성
let largerThanFive = numbers.filter { $0 > 5 }
print(largerThanFive) // [6, 7, 8, 9, 10]
Map
Map은 배열의 각 요소에 대해 주어진 변환 함수를 적용하여 새로운 배열을 생성하는 고차 함수입니다. 변환 함수의 결과로 새로운 배열이 생성됩니다.
Map의 사용 예시
let names = ["Alice", "Bob", "Charlie"]
// 각 이름의 길이를 포함하는 새로운 배열 생성
let nameLengths = names.map { $0.count }
print(nameLengths) // [5, 3, 7]
// 각 이름의 대문자 버전을 포함하는 새로운 배열 생성
let uppercasedNames = names.map { $0.uppercased() }
print(uppercasedNames) // ["ALICE", "BOB", "CHARLIE"]
공통점
Filter와 Map의 공통점은 모두 배열의 각 요소에 대해 함수를 적용하여 새로운 배열을 생성한다는 것입니다.
차이점
- Filter는 조건에 부합하는 요소만 새로운 배열에 포함하지만, Map은 각 요소에 대한 변환 결과를 새로운 배열에 포함합니다.
- Filter는 배열의 크기를 줄일 수 있지만, Map은 배열의 크기를 유지합니다.
사용 방법
Filter와 Map은 모두 배열의 인스턴스 메서드로 제공됩니다. 두 메서드 모두 클로저를 인자로 받아 각 요소에 대한 처리 방식을 정의할 수 있습니다.
Filter와 Map은 다른 고차 함수들(Reduce, Sort 등)과 함께 사용하면 강력한 데이터 처리 기능을 구현할 수 있습니다. 이를 통해 복잡한 데이터 변환 및 필터링 작업을 간단하고 효율적으로 수행할 수 있습니다.
'걔 (개발)로그 > Swift' 카테고리의 다른 글
| Swift의 ARC? 강한 참조? 약한 참조? | 참조가 강하고 약하기도 한다고...? (0) | 2024.05.19 |
|---|---|
| Swift의 메모리 구조(Code, Data, Heap, Stack) | 도대체 어떻게 생겼나 봅시다. (0) | 2024.05.19 |
| Swift에서 프로퍼티 (Properties)와 메서드 (Methods) (0) | 2024.05.17 |
| Swift에서 상속 (Inheritance) (0) | 2024.05.17 |
| Swift에서 인스턴스 (Instance) 및 인스턴스 메서드 (Instance Methods) (0) | 2024.05.17 |