Pola Find dan Guard
Kondisi dalam pencocokan.
Pola Find dan Guard adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Kondisi Penjaga
Tambahkan if atau unless sebagai penjaga pada pola. Cabang hanya cocok jika pola dan kondisi sama-sama berhasil.
case 7
in Integer => n if n.odd?
puts 'odd integer'
endPenjaga Menggunakan Variabel Terikat
Penjaga dapat merujuk variabel yang diikat oleh pola, sehingga Anda dapat menyatakan kondisi yang mendetail tentang data yang cocok.
case [4, 9]
in [a, b] if a < b
puts 'ascending pair'
endPenjaga unless
Penjaga unless cocok ketika kondisinya salah, kebalikan dari if.
case 0
in Integer => n unless n.positive?
puts 'zero or negative'
endBeberapa Cabang dengan Penjaga
Gabungkan penjaga di berbagai cabang untuk membangun urutan keputusan yang jelas.
def grade(score)
case score
in Integer => s if s >= 90 then 'A'
in Integer => s if s >= 70 then 'B'
else 'C'
end
end
puts(grade(85))Pola Pencarian
Pola pencarian [*, x, *] mencari subpola dalam larik di mana saja, dengan operator bintang di kedua ujungnya.
case [1, 2, 3, 4]
in [*, 3, *]
puts 'contains a 3'
endMengikat di Dalam Pencarian
Elemen yang cocok dalam pola pencarian dapat diikat untuk menangkap nilai yang ditemukan.
case [10, 20, 30]
in [*, x, *] if x > 25
puts("found #{x}")
endMenangkap Bagian di Sekitarnya
Kedua operator bintang dalam pola pencarian dapat diberi nama untuk menangkap elemen sebelum dan sesudah hasil cocok.
case [1, 2, 99, 4, 5]
in [*before, 99, *after]
p before
p after
endMencari Elemen Bertipe Tertentu
Pola pencarian dapat digabungkan dengan pola tipe untuk menemukan elemen pertama dari tipe tertentu.
case [1, 'hi', 2]
in [*, String => word, *]
puts(word)
endPenjaga dibandingkan Pola
Nyatakan hal-hal yang dapat Anda nyatakan secara struktural di dalam pola, dan gunakan penjaga hanya untuk kondisi yang tidak dapat ditangkap pola (seperti perbandingan numerik atau pemanggilan metode).
case { role: 'admin', age: 40 }
in { role: 'admin', age: } if age >= 18
puts 'adult admin'
endMenggabungkan Pencarian dan Penjaga
Pola pencarian dan penjaga secara bersamaan memungkinkan Anda menanyakan: apakah ada elemen yang memenuhi kondisi ini?
numbers = [3, 5, 8, 11]
case numbers
in [*, n, *] if n.even?
puts("first even-ish hit: #{n}")
endUrutan Cabang
Cabang dicoba dari atas ke bawah; hasil cocok pertama yang digunakan. Letakkan pola dengan penjaga yang lebih spesifik sebelum pola umum.
case 100
in Integer => n if n > 50 then puts 'big'
in Integer then puts 'small'
endPemeriksaan Singkat
Apa yang dilakukan pola pencarian [*, x, *]?
Ringkasan: Pola Pencarian dan Penjaga
Anda telah menambahkan kondisi dan pencarian ke pencocokan:
- Penjaga
if/unlessmemperinci pola - Penjaga dapat menggunakan variabel yang terikat
- Pola pencarian
[*, x, *]mencari di mana saja - Kedua operator bintang dapat diberi nama untuk menangkap bagian di sekitarnya
- Cabang yang cocok pertama akan digunakan, jadi urutannya penting
case [1, 7, 3]
in [*, x, *] if x > 5 then puts x
endPertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Find dan Guard” gratis?
Ya — teks lengkap “Pola Find dan Guard” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pola Find dan Guard”?
Kondisi dalam pencocokan. Kamu berlatih Ruby 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 Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby 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 3 dari 4.
Berapa lama pelajaran “Pola Find dan Guard” 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 Ruby Academy ini?
Ya. Setiap pelajaran Ruby 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
- Dasar-Dasar case/in
- Pola Array dan Hash
- Pola Find dan Guard
- Kasus Penggunaan Praktis