filter와 조건자
조건을 만족하는 요소를 선택합니다.
filter와 조건자은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
filter란 무엇인가요?
filter는 클로저(조건자)가 true를 반환하는 요소만 유지합니다.
- 클로저는
Bool을 반환합니다. - 요소 형식은 그대로 유지됩니다.
- 결과는 더 작을 수 있는 새 배열입니다.
간단한 filter
짝수인 numbers만 유지합니다.
let numbers = [1, 2, 3, 4, 5, 6]
let evens = numbers.filter { $0 % 2 == 0 }
print(evens) // [2, 4, 6]문자열 필터링
길이가 세 문자보다 긴 words만 유지합니다.
let words = ["hi", "swift", "go", "filter"]
let long = words.filter { $0.count > 3 }
print(long) // ["swift", "filter"]조건자란 무엇인가요?
조건자는 값을 받아 Bool을 반환하는 단순한 함수입니다. filter는 요소마다 조건자를 한 번씩 호출하고, 조건자가 true일 때 해당 값을 유지합니다.
조건자 이름 지정하기
가독성을 높이기 위해 조건자를 저장하고 재사용할 수 있습니다.
let isPositive: (Int) -> Bool = { $0 > 0 }
let data = [-2, 5, -1, 8]
print(data.filter(isPositive)) // [5, 8]조건 결합하기
조건자 안에서 불리언 연산자를 사용합니다.
let nums = [1, 2, 3, 4, 5, 6, 7, 8]
let picked = nums.filter { $0 % 2 == 0 && $0 > 4 }
print(picked) // [6, 8]구조체 필터링
속성을 기준으로 모델 객체 컬렉션을 필터링합니다.
struct Product { let name: String; let price: Int }
let items = [Product(name: "Pen", price: 2), Product(name: "Bag", price: 40)]
let cheap = items.filter { $0.price < 10 }
print(cheap.map { $0.name }) // ["Pen"]filter와 매핑 비교
두 함수는 서로 다른 질문에 답합니다. filter는 어떤 요소를 남길지 선택하고, map은 각 요소를 변경합니다. 결과 형식도 다릅니다.
let n = [1, 2, 3, 4]
print(n.filter { $0 > 2 }) // [3, 4] (subset, same type)
print(n.map { $0 > 2 }) // [false, false, true, true]filter와 매핑 연결하기
먼저 필터링하여 처리할 양을 줄인 다음 변환합니다.
let nums = [1, 2, 3, 4, 5, 6]
let result = nums
.filter { $0 % 2 == 0 }
.map { $0 * $0 }
print(result) // [4, 16, 36]유지하지 않고 개수 세기
개수만 필요하다면 filter(...).count도 작동하지만, count(where:)를 사용하면 배열을 만들지 않아도 됩니다.
let votes = [true, false, true, true]
let yes = votes.filter { $0 }.count
print(yes) // 3딕셔너리 필터링
딕셔너리에 filter를 적용하면 일치하는 키/값 쌍으로 이루어진 딕셔너리가 반환됩니다.
let ages = ["Ann": 30, "Bo": 17, "Cy": 22]
let adults = ages.filter { $0.value >= 18 }
print(adults.keys.sorted()) // ["Ann", "Cy"]빠른 확인
filter 조건자는 무엇을 반환해야 하나요?
복습
필터링을 배웠습니다.
filter는 조건자가true인 요소를 유지합니다.- 조건자는 값을
Bool로 변환하는 모든 함수입니다. - 요소 형식은 유지되며 배열은 더 작아질 수 있습니다.
&&및||로 조건을 결합하고map과 연결할 수 있습니다.
다음 주제: reduce
자주 묻는 질문
“filter와 조건자” 강의는 무료인가요?
네 — “filter와 조건자” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“filter와 조건자”에서 뭘 배우나요?
조건을 만족하는 요소를 선택합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Swift Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“filter와 조건자” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.