พื้นฐาน case/in
การจับคู่เชิงโครงสร้าง
พื้นฐาน case/in เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
การจับคู่รูปแบบมาถึงแล้ว
นิพจน์ case/in ของ Ruby ทำการ จับคู่รูปแบบเชิงโครงสร้าง โดยทดสอบรูปร่างและเนื้อหาของข้อมูล ไม่ใช่เพียงความเท่ากันเท่านั้น นี่เป็นการยกระดับที่ทรงพลังจาก case/when
case 42
in Integer
puts 'it is an integer'
endcase/in เทียบกับ case/when
case/when เปรียบเทียบด้วย === (ในลักษณะตรวจสอบความเท่ากัน) ส่วน case/in จะ แยกโครงสร้าง ค่าและสามารถผูกตัวแปรได้ ให้ใช้ in เมื่อต้องการจับคู่โครงสร้าง
case 'hello'
in String => s
puts "string of length #{s.length}"
endการจับคู่ค่าลิเทอรัล
แขนง in สามารถจับคู่ค่าลิเทอรัลได้ ซึ่งทำงานคล้ายการตรวจสอบความเท่ากันอย่างแม่นยำ
case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
endรูปแบบชนิดข้อมูล
การระบุชื่อคลาสจะจับคู่ค่าทุกค่าที่มีชนิดนั้น โดยอาศัย === อยู่เบื้องหลัง
def describe(x)
case x
in Integer then 'number'
in String then 'text'
in Array then 'list'
end
end
puts(describe([1, 2]))การผูกตัวแปร
ตัวระบุที่อยู่เดี่ยว ๆ ในรูปแบบจะ ผูก ค่าที่จับคู่ได้เข้ากับตัวแปรใหม่ ซึ่งคุณสามารถใช้ในแขนงนั้นได้
case [1, 2]
in [a, b]
puts(a + b)
endตัวแทนทุกค่า
ขีดล่าง _ จะจับคู่กับทุกสิ่งโดยไม่ผูกค่า ใช้เป็นตัวจับคู่ทั้งหมดหรือใช้ละเว้นตำแหน่งบางตำแหน่ง
case 99
in 0 then puts 'zero'
in _ then puts 'something else'
endตัวดำเนินการตรึงค่า
หากต้องการจับคู่กับ ค่า ของตัวแปรที่มีอยู่แล้ว (แทนการผูกตัวแปรใหม่) ให้ตรึงค่าด้วย ^
expected = 5
case 5
in ^expected
puts 'matched the pinned value'
endรูปแบบทางเลือก
รวมรูปแบบด้วย | เพื่อจับคู่ทางเลือกใดทางเลือกหนึ่งจากหลายทางเลือกในแขนงเดียว
case 'b'
in 'a' | 'b' | 'c'
puts 'in the first three letters'
endการผูกค่าที่จับคู่ได้ทั้งหมด
ใช้ pattern => name เพื่อทดสอบรูปแบบและผูกค่าที่จับคู่ได้เข้ากับชื่อในเวลาเดียวกัน
case 'Ruby'
in String => word
puts(word.upcase)
endNoMatchingPatternError
หากไม่มีแขนง in ใดจับคู่ได้และไม่มี else Ruby จะยก NoMatchingPatternError ขึ้นมา ให้เพิ่ม else เพื่อ handle ส่วนที่เหลืออย่างปลอดภัย
case 10
in 1 then puts 'one'
else
puts 'no specific match'
endการจับคู่ในบรรทัดเดียว
ตัวดำเนินการ => ทำการจับคู่และกำหนดค่าทางขวาในบรรทัดเดียว โดยจะยกข้อผิดพลาดหากจับคู่ไม่สำเร็จ ส่วนตัวดำเนินการ in จะส่งคืน true/false แทน
result = [1, 2] in [Integer, Integer]
puts resultตรวจสอบอย่างรวดเร็ว
จะเกิดอะไรขึ้นหาก case/in ไม่มีแขนงที่จับคู่ได้และไม่มี else
สรุปทบทวน: พื้นฐาน case/in
คุณได้เรียนรู้พื้นฐานการจับคู่เชิงโครงสร้างแล้ว:
case/inจับคู่รูปร่าง ไม่ใช่เพียงความเท่ากัน- ค่าลิเทอรัล รูปแบบชนิดข้อมูล และตัวแทนทุกค่า
_ - การผูกตัวแปรและตัวดำเนินการตรึงค่า
^ - ทางเลือกด้วย
|และpattern => name - การจับคู่ที่หายไปจะยก
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endคำถามที่พบบ่อย
บทเรียน “พื้นฐาน case/in” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐาน case/in” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน case/in”
การจับคู่เชิงโครงสร้าง คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐาน case/in” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน case/in
- รูปแบบอาร์เรย์และแฮช
- รูปแบบ Find และการ์ด
- กรณีใช้งานจริง