0Pricing
Ruby Academy · บทเรียน

รูปแบบอาร์เรย์และแฮช

แยกโครงสร้างข้อมูล

รูปแบบอาร์เรย์และแฮช เป็นบทเรียน 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'
end

Splat สำหรับส่วนที่เหลือ

ตัวดำเนินการกระจาย *rest จะเก็บองค์ประกอบที่เหลือจำนวนเท่าใดก็ได้ไว้ในอาร์เรย์ ทำให้ความยืดหยุ่นด้านความยาวเพิ่มขึ้น

case [1, 2, 3, 4]
in [first, *rest]
  puts(first)
  p rest
end

Splat ตรงกลาง

ตัวดำเนินการกระจายสามารถอยู่ระหว่างองค์ประกอบที่กำหนดตายตัว เพื่อดึงส่วนต้นและส่วนท้ายโดยละเว้นส่วนกลาง

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน case/in
  2. รูปแบบอาร์เรย์และแฮช
  3. รูปแบบ Find และการ์ด
  4. กรณีใช้งานจริง
← กลับไปที่ Ruby Academy