รูปแบบอาร์เรย์และแฮช
แยกโครงสร้างข้อมูล
รูปแบบอาร์เรย์และแฮช เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
รูปแบบอาร์เรย์
รูปแบบอาร์เรย์จับคู่ตาม ตำแหน่ง และความยาว โดยจะตรวจสอบรูปแบบของแต่ละองค์ประกอบกับองค์ประกอบที่อยู่ในตำแหน่งตรงกัน
case [1, 2, 3]
in [1, 2, 3]
puts 'exact match'
endการผูกองค์ประกอบอาร์เรย์
ใช้ตัวระบุเพื่อเก็บค่าแต่ละตำแหน่งไว้ในตัวแปร
case [10, 20]
in [x, y]
puts(x + y)
endความยาวมีความสำคัญ
โดยค่าเริ่มต้น รูปแบบอาร์เรย์ต้องการ ความยาวที่ตรงกันทุกประการ รูปแบบที่มี 2 องค์ประกอบจะไม่จับคู่กับอาร์เรย์ที่มี 3 องค์ประกอบ
case [1, 2, 3]
in [a, b]
puts 'two'
in [a, b, c]
puts 'three'
endSplat สำหรับส่วนที่เหลือ
ตัวดำเนินการกระจาย *rest จะเก็บองค์ประกอบที่เหลือจำนวนเท่าใดก็ได้ไว้ในอาร์เรย์ ทำให้ความยืดหยุ่นด้านความยาวเพิ่มขึ้น
case [1, 2, 3, 4]
in [first, *rest]
puts(first)
p rest
endSplat ตรงกลาง
ตัวดำเนินการกระจายสามารถอยู่ระหว่างองค์ประกอบที่กำหนดตายตัว เพื่อดึงส่วนต้นและส่วนท้ายโดยละเว้นส่วนกลาง
case [1, 2, 3, 4, 5]
in [first, *, last]
puts("#{first} ... #{last}")
endรูปแบบแฮช
รูปแบบแฮชจับคู่ตาม คีย์ โดยตรวจสอบว่าคีย์ที่ระบุมีอยู่และค่าของคีย์ตรงกัน ส่วนคีย์เพิ่มเติมจะมีอยู่ได้
case { name: 'Ada', age: 36 }
in { name: 'Ada' }
puts 'found Ada'
endการผูกค่าในแฮช
เก็บค่าด้วยการกำหนดชื่อการผูกให้กับคีย์ การเขียนเพียงคีย์จะผูกเข้ากับตัวแปรที่มีชื่อเดียวกันโดยอัตโนมัติ
case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
puts("#{n} is #{a}")
endการผูกคีย์แบบย่อ
การละเว้นรูปแบบหลังคีย์จะผูกตัวแปรที่ตั้งชื่อตามคีย์ให้โดยอัตโนมัติ
case { city: 'Istanbul' }
in { city: }
puts(city)
endการกำหนดให้ไม่มีคีย์เพิ่มเติม
โดยค่าเริ่มต้น รูปแบบแฮชจะละเว้นคีย์เพิ่มเติม ให้เพิ่ม **nil เพื่อกำหนดว่าต้องมี เฉพาะคีย์ที่ระบุไว้เท่านั้น
case { a: 1 }
in { a: 1, **nil }
puts 'exactly one key'
endรูปแบบที่ซ้อนกัน
รูปแบบสามารถซ้อนกันได้อย่างอิสระ ทำให้คุณแยกโครงสร้างข้อมูลที่ซับซ้อนได้ในแขนงเดียว
data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
puts("#{name}: #{first_tag}")
endการจับคู่ JSON ที่ผ่านการ parse
การจับคู่รูปแบบทำงานร่วมกับข้อมูล JSON หรือ CSV ที่ผ่านการ parse ได้เป็นอย่างดี ช่วยดึงเฉพาะฟิลด์ที่ต้องการออกมา
require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
puts(items.sum)
endตรวจสอบอย่างรวดเร็ว
โดยค่าเริ่มต้น รูปแบบแฮช in { a: 1 } จะจับคู่กับแฮช { a: 1, b: 2 } หรือไม่
สรุปทบทวน: รูปแบบอาร์เรย์และแฮช
คุณสามารถแยกโครงสร้างคอลเลกชันได้:
- รูปแบบอาร์เรย์จับคู่ตามตำแหน่งและความยาว
*restเก็บองค์ประกอบที่เหลือ- รูปแบบแฮชจับคู่ตามคีย์และอนุญาตให้มีคีย์เพิ่มเติม
{ key: }แบบย่อจะผูกตัวแปรที่มีชื่อเดียวกัน**nilห้ามมีคีย์เพิ่มเติม และรูปแบบสามารถซ้อนกันได้ลึก
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
endคำถามที่พบบ่อย
บทเรียน “รูปแบบอาร์เรย์และแฮช” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “รูปแบบอาร์เรย์และแฮช” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “รูปแบบอาร์เรย์และแฮช”
แยกโครงสร้างข้อมูล คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “รูปแบบอาร์เรย์และแฮช” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม
ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐาน case/in
- รูปแบบอาร์เรย์และแฮช
- รูปแบบ Find และการ์ด
- กรณีใช้งานจริง