ใหม่

แฮชใน Ruby

แฮชใน Ruby

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

สร้างแฮชด้วยคู่คีย์ / ค่า

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

ตัวแปรแฮชสามารถสร้างได้เช่นเดียวกับตัวแปรอาเรย์ วิธีที่ง่ายที่สุดคือการสร้างวัตถุแฮชว่างแล้วเติมด้วยคู่ของคีย์ / ค่า โปรดทราบว่ามีการใช้ตัวดำเนินการดัชนี แต่ใช้ชื่อนักเรียนแทนตัวเลข

โปรดจำไว้ว่าแฮชไม่ได้เรียงลำดับซึ่งหมายความว่าไม่มีจุดเริ่มต้นหรือจุดสิ้นสุดที่กำหนดไว้ในอาเรย์ ดังนั้นคุณไม่สามารถผนวกแฮช ค่าจะถูกแทรกลงในแฮชโดยใช้ตัวดำเนินการดัชนี

#! / usr / bin / env ruby
เกรด = Hash.new
เกรด "Bob" = 82
เกรด "จิม" = 94
เกรด "บิลลี่" = 58
ทำให้คะแนน "จิม"

ตัวอักษร Hash

เช่นเดียวกับอาร์เรย์สามารถสร้างแฮชได้ด้วยตัวอักษรแฮช ตัวอักษรแฮชใช้เครื่องหมายปีกกาแทนวงเล็บเหลี่ยมและคู่ค่าคีย์จะถูกรวมเข้าด้วยกัน =>. ตัวอย่างเช่นแฮชที่มีคู่คีย์ / ค่าเดียวของ Bob / 84 จะมีลักษณะดังนี้: {"Bob" => 84}. คู่ของคีย์ / ค่าเพิ่มเติมสามารถเพิ่มเข้าไปในตัวอักษร hash โดยแยกด้วยเครื่องหมายจุลภาค ในตัวอย่างต่อไปนี้แฮจะถูกสร้างขึ้นด้วยคะแนนสำหรับนักเรียนจำนวนหนึ่ง

#! / usr / bin / env ruby
เกรด = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
ทำให้คะแนน "จิม"

การเข้าถึงตัวแปรในแฮช

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

#! / usr / bin / env ruby
เกรด = {"Bob" => 82,
"Jim" => 94,
"Billy" => 58
}
คะแนน. แต่ละคนทำ | ชื่อเกรด |
ใส่ "# {name}: # {grade}"
ปลาย

ดูวิดีโอ: #12 วธหา และสตรการใช Ruby ใน My Secret Bistro Ways to earn & spend RUBIES in MY SECRET BISTRO (กุมภาพันธ์ 2020).