0Pricing
Swift Academy · Pelajaran

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)  // 3

Menyaring 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:

  • filter mempertahankan elemen ketika predikatnya menghasilkan true
  • Predikat adalah fungsi apa pun yang mengubah nilai menjadi Bool
  • Jenis elemen dipertahankan; larik dapat menjadi lebih kecil
  • Gabungkan kondisi dengan && / || dan rangkai dengan map

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

  1. map dan compactMap
  2. filter dan Predikat
  3. reduce dan reduce(into:)
  4. flatMap dan Perantaian
← Kembali ke Swift Academy