나의 기록, 현진록

[Swift] 15.2 필터 본문

Programming/Swift

[Swift] 15.2 필터

guswlsdk 2021. 9. 14. 11:42
반응형

스위프트 프로그래밍 3판 - 야곰 지음

 

15.2 필터

 

필터는 말 그대로 컨테이너 내부의 값을 걸러서 추출하는 역할을 하는 고차함수입니다. 맵과 마찬가지로 새로운 컨테이너에 값을 담아 반환해줍니다. 다만 맵처럼 기존 콘텐츠를 변형하는 것이 아니라, 특정 조건에 맞게 걸러내는 역할을 할 수 있다는 점이 다릅니다. 

 

filter 함수의 매개변수로 전달되는 함수의 반환 타입은 Bool입니다. 해당 콘텐츠의 값을 갖고 새로운 컨테이너에 포함될 항목이라고 판단하면 ture를, 포함하지 않으려면 false를 반환해주면 됩니다. 

 

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

let evenNumbers = numbers.filter{(number: Int) -> Bool in
    return number % 2 == 0
}
print(evenNumbers)

let oddNumbers = numbers.filter { $0 % 2 == 1}
print(oddNumbers)

만약 콘텐츠의 변형 후에 필터링하고 싶다면 다음처럼 맵을 사용한 후 필터 메서드를 호출하면 됩니다.

 

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

let mappedNumbers = numbers.map{$0 + 3}

let evenNumbers = mappedNumbers.filter{ (number: Int) -> Bool in
    return number % 2 == 0
}
print(evenNumbers)

let oddNumbers = numbers.map{$0 + 3}.filter{ (number: Int) -> Bool in
    return number % 2 == 1
}
print(oddNumbers)

 

반응형

'Programming > Swift' 카테고리의 다른 글

[Swift] 15.1 맵  (0) 2021.09.14
[Swift] 14.2 빠른 종료  (0) 2021.09.13
[Swift] 14.1 옵셔널 체이닝  (0) 2021.09.13
[Swift] Baekjoon 20300 서강근육맨  (0) 2021.09.09
[Swift] 13.4 값 획득  (0) 2021.09.07