일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 재귀
- 자료구조
- web
- SWiFT
- System
- 파이썬
- 정렬 알고리즘
- PHP
- HTML
- C
- 시간복잡도
- 스택
- windosws wbcs
- War Game
- LoB
- 두근두근 자료구조
- windosw 문자열
- ftz level13
- Java
- 미로 탐색 알고리즘
- 암호수학
- Stack
- 큐
- ftz
- level13
- pwnable.kr
- OSI
- 백준
- 파일 시스템
- c언어
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 15.2 필터 본문
반응형
스위프트 프로그래밍 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 |