Asas case/in
Pemadanan berstruktur
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'
endcase/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}"
endMemadankan 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'
endCorak 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)
endKad 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'
endOperator 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'
endCorak 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'
endMengikat 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)
endNoMatchingPatternError
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'
endPadanan 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 resultSemakan 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/inmemadankan bentuk, bukan sekadar kesamaan- Nilai literal, corak jenis dan kad bebas
_ - Pengikatan pemboleh ubah dan operator penetap
^ - Alternatif dengan
|danpattern => name - Padanan yang tiada akan menimbulkan
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endPelajari 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.