รูปแบบ Find และการ์ด
เงื่อนไขในการจับคู่
รูปแบบ Find และการ์ด เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
เงื่อนไขกำกับ
เพิ่ม if หรือ unless เพื่อเป็น เงื่อนไขกำกับรูปแบบ แขนงจะจับคู่ได้ก็ต่อเมื่อทั้งรูปแบบและเงื่อนไขสำเร็จ
case 7
in Integer => n if n.odd?
puts 'odd integer'
endเงื่อนไขกำกับใช้ตัวแปรที่ผูกไว้
เงื่อนไขกำกับสามารถอ้างอิงตัวแปรที่รูปแบบผูกไว้ได้ คุณจึงสามารถเขียนเงื่อนไขที่ละเอียดเกี่ยวกับข้อมูลที่จับคู่ได้
case [4, 9]
in [a, b] if a < b
puts 'ascending pair'
endเงื่อนไขกำกับของ unless
เงื่อนไขกำกับ unless จะจับคู่เมื่อเงื่อนไขเป็นเท็จ ซึ่งตรงข้ามกับ if
case 0
in Integer => n unless n.positive?
puts 'zero or negative'
endแขนงที่มีเงื่อนไขกำกับหลายแขนง
รวมเงื่อนไขกำกับในแขนงต่าง ๆ เพื่อสร้างลำดับการตัดสินใจที่ชัดเจน
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))รูปแบบค้นหา
รูปแบบค้นหา [*, x, *] จะค้นหาอาร์เรย์เพื่อหารูปแบบย่อยที่อยู่ ที่ใดก็ได้ ภายใน โดยมีตัวดำเนินการกระจายอยู่ทั้งสองด้าน
case [1, 2, 3, 4]
in [*, 3, *]
puts 'contains a 3'
endการผูกค่าภายในการค้นหา
องค์ประกอบที่จับคู่ได้ในรูปแบบค้นหาสามารถผูกไว้เพื่อเก็บค่าที่ค้นพบ
case [10, 20, 30]
in [*, x, *] if x > 25
puts("found #{x}")
endการเก็บค่าบริเวณรอบข้าง
ตัวดำเนินการกระจายทั้งสองตัวในรูปแบบค้นหาสามารถตั้งชื่อเพื่อเก็บองค์ประกอบก่อนและหลังค่าที่จับคู่ได้
case [1, 2, 99, 4, 5]
in [*before, 99, *after]
p before
p after
endค้นหาองค์ประกอบตามชนิด
รูปแบบค้นหาสามารถใช้ร่วมกับรูปแบบชนิดข้อมูลเพื่อค้นหาองค์ประกอบแรกที่มีชนิดที่กำหนด
case [1, 'hi', 2]
in [*, String => word, *]
puts(word)
endเงื่อนไขกำกับเทียบกับรูปแบบ
แสดงสิ่งที่ทำได้ในเชิง โครงสร้างไว้ในรูปแบบ และใช้เงื่อนไขกำกับเฉพาะกับเงื่อนไขที่รูปแบบไม่สามารถจับได้ เช่น การเปรียบเทียบตัวเลขหรือการเรียกเมธอด
case { role: 'admin', age: 40 }
in { role: 'admin', age: } if age >= 18
puts 'adult admin'
endการรวมการค้นหากับเงื่อนไขกำกับ
รูปแบบค้นหาและเงื่อนไขกำกับเมื่อใช้ร่วมกันจะช่วยให้คุณถามได้ว่า มีองค์ประกอบใดบ้างที่ตรงตามเงื่อนไขนี้หรือไม่
numbers = [3, 5, 8, 11]
case numbers
in [*, n, *] if n.even?
puts("first even-ish hit: #{n}")
endลำดับของแขนง
ระบบจะลองแขนงจากบนลงล่าง โดยแขนงแรกที่จับคู่ได้จะเป็นผลลัพธ์ ให้ใส่รูปแบบที่มีเงื่อนไขกำกับเฉพาะเจาะจงกว่าก่อนรูปแบบทั่วไป
case 100
in Integer => n if n > 50 then puts 'big'
in Integer then puts 'small'
endตรวจสอบอย่างรวดเร็ว
รูปแบบค้นหา [*, x, *] ทำอะไร
สรุปทบทวน: รูปแบบค้นหาและเงื่อนไขกำกับ
คุณได้เพิ่มเงื่อนไขและการค้นหาให้กับการจับคู่แล้ว:
- เงื่อนไขกำกับ
if/unlessช่วยปรับรูปแบบให้ละเอียดขึ้น - เงื่อนไขกำกับสามารถใช้ตัวแปรที่ผูกไว้ได้
- รูปแบบค้นหา
[*, x, *]ค้นหาได้ทุกตำแหน่ง - ตัวดำเนินการกระจายทั้งสองตัวสามารถตั้งชื่อเพื่อเก็บค่าบริเวณรอบข้าง
- แขนงแรกที่จับคู่ได้จะเป็นผลลัพธ์ ดังนั้นลำดับจึงมีความสำคัญ
case [1, 7, 3]
in [*, x, *] if x > 5 then puts x
endคำถามที่พบบ่อย
บทเรียน “รูปแบบ Find และการ์ด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “รูปแบบ Find และการ์ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “รูปแบบ Find และการ์ด”
เงื่อนไขในการจับคู่ คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “รูปแบบ Find และการ์ด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน case/in
- รูปแบบอาร์เรย์และแฮช
- รูปแบบ Find และการ์ด
- กรณีใช้งานจริง