filter dan Predikat
Pilih elemen yang memenuhi suatu kondisi.
filter dan Predikat adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.
Apa Itu filter?
filter hanya mempertahankan elemen yang fungsi penutupnya (sebuah predikat) kembalikan sebagai true.
- Fungsi tersebut mengembalikan
Bool - Jenis elemen tetap sama
- Hasilnya adalah larik baru yang mungkin lebih kecil
filter Sederhana
Hanya mempertahankan angka genap:
let numbers = [1, 2, 3, 4, 5, 6]
let evens = numbers.filter { $0 % 2 == 0 }
print(evens) // [2, 4, 6]Menyaring String
Hanya mempertahankan kata yang panjangnya lebih dari tiga karakter:
let words = ["hi", "swift", "go", "filter"]
let long = words.filter { $0.count > 3 }
print(long) // ["swift", "filter"]Apa Itu Predikat?
Predikat hanyalah fungsi yang menerima sebuah nilai dan mengembalikan Bool. filter memanggil predikat Anda sekali untuk setiap elemen dan mempertahankan nilainya ketika predikat tersebut menghasilkan true.
Memberi Nama pada Predikat
Predikat dapat disimpan dan digunakan kembali agar kode lebih mudah dibaca:
let isPositive: (Int) -> Bool = { $0 > 0 }
let data = [-2, 5, -1, 8]
print(data.filter(isPositive)) // [5, 8]Menggabungkan Kondisi
Gunakan operator boolean di dalam predikat:
let nums = [1, 2, 3, 4, 5, 6, 7, 8]
let picked = nums.filter { $0 % 2 == 0 && $0 > 4 }
print(picked) // [6, 8]Menyaring Struktur
Saring koleksi objek model berdasarkan sebuah properti:
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 dibandingkan map
Keduanya menjawab pertanyaan yang berbeda: filter memilih elemen yang tetap ada, sedangkan map mengubah setiap elemen. Jenis hasilnya pun berbeda:
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]Merangkai filter dan map
Saring terlebih dahulu untuk mengurangi pekerjaan, kemudian lakukan transformasi:
let nums = [1, 2, 3, 4, 5, 6]
let result = nums
.filter { $0 % 2 == 0 }
.map { $0 * $0 }
print(result) // [4, 16, 36]Menghitung Tanpa Mempertahankan Hasil
Jika Anda hanya memerlukan jumlahnya, filter(...).count dapat digunakan, tetapi count(where:) menghindari pembuatan larik:
let votes = [true, false, true, true]
let yes = votes.filter { $0 }.count
print(yes) // 3Menyaring Kamus
filter pada kamus menghasilkan kamus yang berisi pasangan kunci/nilai yang cocok:
let ages = ["Ann": 30, "Bo": 17, "Cy": 22]
let adults = ages.filter { $0.value >= 18 }
print(adults.keys.sorted()) // ["Ann", "Cy"]Pemeriksaan Singkat
Apa yang harus dikembalikan oleh predikat filter?
Ringkasan
Anda telah mempelajari penyaringan:
filtermempertahankan elemen ketika predikatnya menghasilkantrue- Predikat adalah fungsi apa pun yang mengubah nilai menjadi
Bool - Jenis elemen dipertahankan; larik dapat menjadi lebih kecil
- Gabungkan kondisi dengan
&&/||dan rangkai denganmap
Berikutnya: reduce.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “filter dan Predikat” gratis?
Ya — teks lengkap “filter dan Predikat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “filter dan Predikat”?
Pilih elemen yang memenuhi suatu kondisi. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “filter dan Predikat” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- map dan compactMap
- filter dan Predikat
- reduce dan reduce(into:)
- flatMap dan Perantaian