본문 바로가기

Swift '문법'

filter

filter 함수는 배열(Array)의 고차 함수로, 주어진 조건에 맞는 요소들만을 걸러내어 새로운 배열을 반환하는 역할을 합니다. 즉, 배열에서 특정 조건을 만족하는 값들만 남기고, 나머지는 제외합니다.

filter 함수의 기본 형태 (Swift)

func filter(_ isIncluded: (Element) throws -> Bool) rethrows -> [Element]

 

  • 매개변수: 조건을 나타내는 클로저를 매개변수로 받습니다. 클로저는 배열의 각 요소를 평가하여 true 또는 false를 반환하며, true를 반환한 요소만 필터링됩니다.
  • 반환값: 조건을 만족하는 요소들로 이루어진 새로운 배열을 반환합니다.

filter 함수의 사용 예시

1. 짝수만 필터링

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

// 짝수인 요소들만 필터링
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers)  // 출력: [2, 4, 6]

 

2. 특정 조건을 가진 문자열 필터링

let fruits = ["Apple", "Banana", "Cherry", "Avocado"]

// 'A'로 시작하는 과일들만 필터링
let filteredFruits = fruits.filter { $0.hasPrefix("A") }
print(filteredFruits)  // 출력: ["Apple", "Avocado"]

3. 조건이 여러 개인 필터링

let numbers = [10, 20, 33, 45, 60]

// 20보다 크고 50보다 작은 숫자만 필터링
let filteredNumbers = numbers.filter { $0 > 20 && $0 < 50 }
print(filteredNumbers)  // 출력: [33, 45]

filter 함수의 특징

  • 원본 배열은 변경되지 않음: filter 함수는 새로운 배열을 반환하므로, 원래 배열은 그대로 유지됩니다.
  • 읽기 쉽고 간결한 코드: 조건문을 반복문으로 작성하는 대신, filter를 사용하면 가독성이 좋아집니다.
  • 클로저를 사용: filter의 인자로 전달되는 클로저 안에서 조건을 정의할 수 있으며, 이를 통해 복잡한 필터링 로직을 간결하게 구현할 수 있습니다.

filter 함수의 장점

  • 코드 가독성 향상: 반복문을 사용한 조건 처리보다 훨씬 직관적이고 읽기 쉽습니다.
  • 간편한 조건 처리: 다양한 조건을 클로저로 쉽게 처리할 수 있습니다.

filter는 배열의 요소들을 조건에 따라 손쉽게 필터링할 수 있는 고차 함수로, 데이터 처리 및 정제에 유용하게 사용됩니다.

'Swift '문법'' 카테고리의 다른 글

map  (0) 2024.09.26
protocol [프로토콜]  (2) 2024.09.25
상수/변수  (0) 2024.08.26
저장 프로퍼티 (Stored Property),연산 프로퍼티 (Computed Property)  (0) 2024.08.23
Closure '클로저'  (0) 2024.08.20