วิธีสร้างอาร์เรย์หลายมิติใน Ruby

วิธีสร้างอาร์เรย์หลายมิติใน Ruby แม้ว่า Ruby จะไม่ได้ให้การสนับสนุนอย่างชัดเจนสำหรับอาร์เรย์หลายมิติ แต่คุณก็สามารถปรับใช้อาร์เรย์เหล่านี้ได้ด้วยตนเองหากคุณมีความรู้พื้นฐานเกี่ยวกับภาษา คุณต้องสร้าง "อาร์เรย์ของอาร์เรย์" โดยพื้นฐานแล้วซึ่งแต่ละองค์ประกอบของอาร์เรย์จะมีอาร์เรย์อื่น ในการสร้างอาร์เรย์หลายมิติใน Ruby คุณสามารถเขียนวิธีการที่ใช้สร้างอาร์เรย์ของอาร์เรย์เพื่อไม่ให้โค้ดต้องทำซ้ำ

สร้างอาร์เรย์หลายมิติใน Ruby

ขั้นตอนที่ 1

เขียนโครงร่างของวิธีการ เมธอดนี้จะใช้อาร์กิวเมนต์ของมิติจำนวนหนึ่งและส่งกลับอาร์เรย์หลายมิติที่ว่างเปล่าของมิติเหล่านั้น ตัวอย่างเช่น สำหรับอาร์เรย์ 10x10 ให้เรียกเมธอดนี้ mda (10,10):def mda (width, height) end

วีดีโอประจำวันนี้

ขั้นตอนที่ 2

สร้างอาร์เรย์ขององค์ประกอบความกว้าง

ขั้นตอนที่ 3

สร้างอาร์เรย์ขององค์ประกอบความสูงสำหรับทุกองค์ประกอบในอาร์เรย์ สิ่งนี้ทำให้ "อาร์เรย์ของอาร์เรย์" ที่จะใช้เป็นอาร์เรย์สองมิติ ในการสร้างอาร์เรย์ว่างที่มีความยาวเฉพาะ ให้ใช้ตัวสร้าง Array.new โดยมีความยาวเป็นอาร์กิวเมนต์ เริ่มแรก ค่าทั้งหมดในอาร์เรย์จะเป็นศูนย์

ขั้นตอนที่ 4

ใช้แผนที่! วิธีการเช่นกัน แผนที่! เมธอดจะวนซ้ำทุกองค์ประกอบในอาร์เรย์ รันบล็อกสำหรับทุกคน และกำหนดผลลัพธ์ของบล็อกให้กับองค์ประกอบอาร์เรย์ ผลลัพธ์เดียวกันสามารถทำได้โดยใช้ for loop แต่แผนที่! วิธีกระชับมากขึ้น: def mda (ความกว้าง, ความสูง) a = Array.new (ความกว้าง) a.map! { Array.new (ความสูง) } return aend

ขั้นตอนที่ 5

ใช้อาร์เรย์นี้กับตัวดำเนินการตัวห้อย (วงเล็บเหลี่ยม []) ตัวอย่างเช่น หากคุณมีอาร์เรย์ 10x10 ชื่อ "a" และต้องการองค์ประกอบ 7,3 คุณจะพูดว่า a[7][3]: a = mda (10,10)# เติมอาร์เรย์ด้วย valuesa[7][5] = "a string"a[2][9] = 23# ดึงค่าออกมา a[7][5]puts a[2][9]

ขั้นตอนที่ 6

ใช้ประโยชน์จากความสามารถในการ "เชื่อมต่อ" เมธอดใน Ruby ตัวอย่างเช่น วิธีการ Array.new จะคืนค่าอาร์เรย์ คุณสามารถโยงเมธอดอื่นเพื่อเรียกเมธอดในอาร์เรย์ที่ส่งคืน เนื่องจากคุณกำลังผูกมัดเมธอดและไม่ได้ใช้คำสั่ง return คุณจึงไม่ต้องการชื่อตัวแปรเช่นกัน: def mda (width, height) Array.new (width).map!{ Array.new (height) }end

เคล็ดลับ

รูบี้แสดงอารมณ์ได้ดีมาก วิธีการ MDA อาจเป็นรหัสบรรทัดเดียวที่สั้นและกระชับ บรรทัดและคีย์เวิร์ดเพิ่มเติมจะทำให้โค้ดดูซับซ้อนกว่าที่เป็นจริงเท่านั้น คำสั่ง return ไม่จำเป็นใน Ruby เมธอดและบล็อกของ Ruby จะคืนค่าผลลัพธ์ของคำสั่งสุดท้ายที่ดำเนินการในเมธอดหรือบล็อกโดยอัตโนมัติ

หมวดหมู่

ล่าสุด

วิธีลบรอยขีดข่วนออกจากหน้าจอพลาสติก

วิธีลบรอยขีดข่วนออกจากหน้าจอพลาสติก

ใช้ของใช้ในครัวเรือนสองสามอย่างเพื่อซ่อมแซมรอย...

ฉันจะลบบัญชี Gmail ได้อย่างไร

ฉันจะลบบัญชี Gmail ได้อย่างไร

เครดิตรูปภาพ: รูปภาพ Rohappy / iStock / Getty ล...

วิธีติดตามตำแหน่งของโทรศัพท์มือถือโดยไม่ใช้ GPS

วิธีติดตามตำแหน่งของโทรศัพท์มือถือโดยไม่ใช้ GPS

โทรศัพท์มือถือสามารถคำนวณระยะห่างระหว่างโทรศัพ...