Ruby Academy · Pelajaran

Asas case/in

Pemadanan berstruktur

Pelajaran 1 daripada 413 langkah

Asas case/in ialah pelajaran Ruby Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ruby Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ruby Academy merangkumi sejumlah 4 pelajaran.

Padanan Corak Diperkenalkan

Ungkapan case/in Ruby melakukan padanan corak berstruktur: ia menguji bentuk dan kandungan data, bukan sekadar kesamaan. Ini merupakan penambahbaikan yang hebat berbanding case/when.

case 42
in Integer
  puts 'it is an integer'
end

case/in berbanding case/when

case/when membuat perbandingan menggunakan === (berdasarkan kesamaan). case/in menguraikan struktur nilai dan boleh mengikat pemboleh ubah. Gunakan in untuk memadankan struktur.

case 'hello'
in String => s
  puts "string of length #{s.length}"
end

Memadankan Nilai Literal

Cabang in boleh memadankan nilai literal, seperti pemeriksaan kesamaan yang tepat.

case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
end

Corak Jenis

Menamakan kelas akan memadankan mana-mana nilai daripada jenis tersebut, dengan memanfaatkan === di sebalik tabir.

def describe(x)
  case x
  in Integer then 'number'
  in String then 'text'
  in Array then 'list'
  end
end
puts(describe([1, 2]))

Mengikat Pemboleh Ubah

Pengecam tunggal dalam corak mengikat nilai yang sepadan kepada pemboleh ubah baharu yang boleh anda gunakan dalam cabang tersebut.

case [1, 2]
in [a, b]
  puts(a + b)
end

Kad Bebas

Garis bawah _ memadankan apa-apa sahaja tanpa melakukan pengikatan. Gunakannya sebagai padanan umum atau untuk mengabaikan kedudukan tertentu.

case 99
in 0 then puts 'zero'
in _ then puts 'something else'
end

Operator Penetap

Untuk memadankan dengan nilai pemboleh ubah sedia ada (bukannya mengikat pemboleh ubah baharu), tetapkan pemboleh ubah itu dengan ^.

expected = 5
case 5
in ^expected
  puts 'matched the pinned value'
end

Corak Alternatif

Gabungkan corak dengan | untuk memadankan mana-mana satu daripada beberapa pilihan dalam satu cabang.

case 'b'
in 'a' | 'b' | 'c'
  puts 'in the first three letters'
end

Mengikat Keseluruhan Padanan

Gunakan pattern => name untuk menguji corak dan mengikat nilai yang sepadan kepada nama pada masa yang sama.

case 'Ruby'
in String => word
  puts(word.upcase)
end

NoMatchingPatternError

Jika tiada cabang in yang sepadan dan tiada else, Ruby menimbulkan NoMatchingPatternError. Tambahkan else untuk mengendalikan baki keadaan dengan selamat.

case 10
in 1 then puts 'one'
else
  puts 'no specific match'
end

Padanan Satu Baris

Operator => melakukan padanan penetapan ke kanan dalam satu baris dan menimbulkan ralat jika gagal. Sebaliknya, operator in mengembalikan benar atau palsu.

result = [1, 2] in [Integer, Integer]
puts result

Semakan Pantas

Apakah yang berlaku jika case/in tidak mempunyai cabang yang sepadan dan tiada else?

Imbas Kembali: Asas case/in

Anda telah mempelajari asas padanan berstruktur:

  • case/in memadankan bentuk, bukan sekadar kesamaan
  • Nilai literal, corak jenis dan kad bebas _
  • Pengikatan pemboleh ubah dan operator penetap ^
  • Alternatif dengan | dan pattern => name
  • Padanan yang tiada akan menimbulkan NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end
Percuma untuk bermula

Pelajari Ruby dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
29
Pelajaran
109

Soalan Lazim

Adakah pelajaran “Asas case/in” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Ruby Academy, termasuk “Asas case/in”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Ruby Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Asas case/in”?

Pemadanan berstruktur Anda berlatih Ruby Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Ruby Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Ruby Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Asas case/in” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ruby Academy ini?

Ya. Setiap pelajaran Ruby Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Asas case/in
  2. Corak Tatasusunan dan Hash
  3. Corak Find dan Pengawal
  4. Kes Penggunaan Praktikal
← Kembali ke Ruby Academy