0Pricing
Ruby Academy · Pelajaran

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'
end

Penjaga 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'
end

Penjaga unless

Penjaga unless cocok ketika kondisinya salah, kebalikan dari if.

case 0
in Integer => n unless n.positive?
  puts 'zero or negative'
end

Beberapa 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'
end

Mengikat 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}")
end

Menangkap 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
end

Mencari 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)
end

Penjaga 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'
end

Menggabungkan 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}")
end

Urutan 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'
end

Pemeriksaan Singkat

Apa yang dilakukan pola pencarian [*, x, *]?

Ringkasan: Pola Pencarian dan Penjaga

Anda telah menambahkan kondisi dan pencarian ke pencocokan:

  • Penjaga if / unless memperinci 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
end

Pertanyaan 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

  1. Dasar-Dasar case/in
  2. Pola Array dan Hash
  3. Pola Find dan Guard
  4. Kasus Penggunaan Praktis
← Kembali ke Ruby Academy