ทับทิมกัญชา (กัญชา)
กัญชา (กัญชา) มีลักษณะคล้ายกับ "กุญแจ" => "คุณค่า" เช่นคอลเลกชันของคู่คีย์ค่า คล้ายกับอาร์เรย์กัญชา แต่มันจะไม่ จำกัด การใช้งานของตัวเลขดัชนี
กัญชาดัชนี (หรือ "สำคัญ") ได้เกือบวัตถุใด ๆ
อาร์เรย์กัญชาแม้ว่าที่คล้ายกัน แต่มีความแตกต่างที่สำคัญมาก: องค์ประกอบกัญชาอยู่ในลำดับใดไม่มี หากคำสั่งซื้อที่มีความสำคัญแล้วคุณควรใช้อาร์เรย์
สร้างกัญชา
เช่นเดียวกับอาร์เรย์ที่มีความหลากหลายของวิธีการที่แตกต่างกันในการสร้างกัญชาคุณสามารถสร้างกัญชาว่างผ่านวิธีการเรียนใหม่:
months = Hash.new
นอกจากนี้คุณยังสามารถใช้กัญชาใหม่ถูกสร้างขึ้นด้วยค่าเริ่มต้นโดยไม่มีค่าแฮชเริ่มต้นเป็นศูนย์:
months = Hash.new( "month" ) 或 months = Hash.new "month"
เมื่อคุณเข้าถึงกัญชาที่มีค่าเริ่มต้นในคีย์ใด ๆ หากคีย์หรือค่าไม่อยู่กลับไปที่ค่าการเข้าถึงกัญชาเริ่มต้น:
#!/usr/bin/ruby months = Hash.new( "month" ) puts "#{months[0]}" puts "#{months[72]}"
เรียกเอาท์พุทตัวอย่างข้างต้นคือ
month month
#!/usr/bin/ruby H = Hash["a" => 100, "b" => 200] puts "#{H['a']}" puts "#{H['b']}"
เรียกเอาท์พุทตัวอย่างข้างต้นคือ
100 200
คุณสามารถใช้วัตถุทับทิมใด ๆ ที่เป็นคีย์หรือค่าหรือสามารถใช้อาร์เรย์เป็นตัวอย่างที่แสดง:
[1,"jan"] => "January"
แฮวิธีในตัว
หากคุณจำเป็นต้องเรียกวิธีแฮคุณจะต้องยกตัวอย่างวัตถุแฮช นี่คือวิธีการที่จะสร้างอินสแตนแฮวัตถุ:
Hash[[key =>|, value]* ] or Hash.new [or] Hash.new(obj) [or] Hash.new { |hash, key| block }
นี้จะกลับวัตถุให้เต็มไปด้วยกัญชาใหม่ ตอนนี้ใช้วัตถุที่สร้างขึ้นเราสามารถเรียกวิธีการใด ๆ ที่มีอยู่ ตัวอย่างเช่น:
#!/usr/bin/ruby $, = ", " months = Hash.new( "month" ) months = {"1" => "January", "2" => "February"} keys = months.keys puts "#{keys}"
เรียกเอาท์พุทตัวอย่างข้างต้นคือ
["1", "2"]
ต่อไปนี้เป็นวิธีกัญชาที่พบบ่อย(สมมติว่าวัตถุกัญชากัญชา):
เลขที่ | วิธีการและคำอธิบาย |
---|---|
1 | กัญชา == other_hash ตรวจสอบว่าทั้งสองมีค่าคีย์กัญชาเดียวกันสำหรับจำนวนของคู่ค่าคีย์ที่มีการจับคู่กับแต่ละอื่น ๆ เพื่อตรวจสอบว่าทั้งสอง hashes มีค่าเท่ากัน |
2 | แฮช. [สำคัญ] ใช้ค่าอ้างอิงที่สำคัญจากกัญชา ถ้าคีย์ไม่พบแล้วกลับไปเป็นค่าเริ่มต้น |
3 | แฮช. [สำคัญ] = ค่า ค่าที่กำหนดค่าของคีย์เกี่ยวข้องกับคีย์ที่กำหนด |
4 | hash.clear ลบคีย์ทั้งหมดจากกัญชา |
5 | hash.default (คีย์ = ไม่มี) ส่งกลับค่าเริ่มต้นของกัญชาหากไม่ได้กำหนดโดย= เริ่มต้นกลับศูนย์(ถ้าคีย์ไม่อยู่ในกัญชาแล้ว[] จะแสดงค่าเริ่มต้น.) |
6 | hash.default = obj ตั้งค่าเริ่มต้นสำหรับกัญชา |
7 | hash.default_proc หากกัญชาที่สร้างขึ้นโดยบล็อก,บล็อกกลับ |
8 | hash.delete (กุญแจ) [หรือ] array.delete (กุญแจ) {| สำคัญ | บล็อก} นำออกจากคีย์กัญชาโดยคู่สำคัญหากบล็อกและไม่พบการจับคู่คู่ค่าคีย์ผลของบล็อกจะถูกส่งกลับ เปรียบเทียบกับdelete_if |
9 | hash.delete_if {| คีย์ค่า | บล็อก } มันเป็นความจริงสำหรับบล็อกของบล็อกแต่ละลบคีย์จากกัญชา |
10 | hash.each {| คีย์ค่า | บล็อก } ทราเวิร์กัญชาที่เรียกว่าครั้งเดียวสำหรับแต่ละบล็อกที่สำคัญผ่านค่าคีย์เป็นอาร์เรย์สององค์ประกอบ |
11 | hash.each_key {| สำคัญ | บล็อก} ข้ามผ่านกัญชาสำหรับปุ่มโทรแต่ละครั้งเดียวบล็อกผ่านที่สำคัญเป็นพารามิเตอร์ |
12 | hash.each_key {| key_value_array | บล็อก} ทราเวิร์กัญชาที่เรียกว่าครั้งเดียวสำหรับแต่ละบล็อกที่สำคัญส่งค่าที่สำคัญและเป็นข้อโต้แย้ง |
13 | hash.each_value {| ค่า | บล็อก} ทราเวิร์กัญชาที่เรียกว่าครั้งเดียวสำหรับแต่ละบล็อกที่สำคัญผ่านเป็นค่าพารามิเตอร์ |
14 | hash.empty? ตรวจสอบว่ากัญชาเป็นที่ว่างเปล่า (ไม่ได้มีคู่ค่าคีย์)และผลตอบแทนจริงหรือเท็จ |
15 | hash.fetch (คีย์ [เริ่มต้น]) [หรือ] hash.fetch (กุญแจ) {| สำคัญ | บล็อก} ค่าตอบแทนจากกัญชาผ่านที่สำคัญที่กำหนดถ้าคุณไม่พบกุญแจและไม่ได้ให้พารามิเตอร์เพิ่มเติมโยนยกเว้นIndexError;ถ้าให้เริ่มต้นกลับเริ่มต้นถ้าบล็อกตัวเลือกผลบล็อกจะถูกส่งกลับ |
16 | hash.has_key? (กุญแจ) [หรือ] hash.include? (กุญแจ) [หรือ] hash.key? (กุญแจ) [หรือ] hash.member? (กุญแจ) ตรวจสอบว่าที่สำคัญที่ได้รับอยู่ในกัญชาผลตอบแทนจริงหรือเท็จ |
17 | hash.has_value (ค่า) ตรวจสอบว่ากัญชามีค่าที่กำหนด |
18 | hash.index (ค่า) ผลตอบแทนที่ให้ค่าของคีย์กัญชาหากไม่มีการแข่งขันพบผลตอบแทนที่ศูนย์ |
19 | hash.indexes (Keys) ก็จะส่งกลับอาร์เรย์ใหม่ด้วยคุณค่าของส่วนประกอบที่สำคัญที่กำหนด ไม่สามารถหากุญแจสำคัญในการใส่ค่าเริ่มต้น วิธีการนี้ได้รับการคัดค้านกรุณาใช้เลือก |
20 | hash.indices (Keys) ก็จะส่งกลับอาร์เรย์ใหม่ด้วยคุณค่าของส่วนประกอบที่สำคัญที่กำหนด ไม่สามารถหากุญแจสำคัญในการใส่ค่าเริ่มต้น วิธีการนี้ได้รับการคัดค้านกรุณาใช้เลือก |
21 | hash.inspect ย้อนกลับพิมพ์กัญชาสตริงรุ่น |
22 | hash.invert สร้างกัญชาใหม่กัญชาผกผันของคีย์และค่าในคำอื่น ๆกัญชาใหม่ค่าแฮชจะกลายเป็นกุญแจสำคัญที่ค่าจะกลายเป็นกุญแจสำคัญ |
23 | hash.keys สร้างอาร์เรย์ใหม่ด้วยคีย์กัญชา/ td> |
24 | hash.length มันกลับมีขนาดจำนวนเต็มกัญชาหรือความยาว |
25 | hash.merge (other_hash) [หรือ] hash.merge (other_hash) {| สำคัญ oldval, newval | บล็อก} ส่งกลับกัญชาใหม่กัญชามีเนื้อหาและother_hash เขียนซ้ำกัญชาสำคัญกับother_hashกับคู่คีย์ซ้ำ |
26 | hash.merge! (other_hash) [หรือ] hash.merge (other_hash) {| คีย์ , oldval, newval | บล็อก} และผสานเดียวกัน แต่จริงกัญชามีการเปลี่ยนแปลง |
27 | hash.rehash สร้างใหม่กัญชาตามมูลค่าปัจจุบันของแต่ละคีย์ถ้าคุณใส่ค่าที่มีการเปลี่ยนแปลงการที่จะกัญชาอีกครั้งการจัดทำดัชนี |
28 | hash.reject {| คีย์ค่า | บล็อก } ที่เป็นจริงของแต่ละบล็อกกุญแจสำคัญในการสร้างกัญชาใหม่ |
29 | hash.reject! {| คีย์ค่า | บล็อก} และปฏิเสธเหมือนกันแต่จริงกัญชามีการเปลี่ยนแปลง |
30 | hash.replace (other_hash) แทนที่เนื้อหาของกัญชาของother_hash เนื้อหา |
วันที่ 31 | hash.select {| คีย์ค่า | บล็อก } ส่งกลับอาร์เรย์ใหม่บล็อกส่งกลับค่าคีย์กัญชาจริงในคู่ |
32 | hash.shift นำออกจากกัญชาในคู่คีย์และส่งค่าคีย์กลับมาเป็นอาร์เรย์สององค์ประกอบ |
33 | hash.size มันกลับแฮจำนวนเต็มของขนาดหรือความยาว |
34 | hash.sort กัญชาถูกแปลงเป็นอาร์เรย์สองมิติที่มีอาร์เรย์ค่าคีย์และเรียงลำดับแล้ว |
35 | hash.store (คีย์ค่า) กัญชาเก็บไว้ในคู่ค่าคีย์ |
36 | hash.to_a สร้างอาร์เรย์สองมิติจากกัญชา แต่ละคู่ค่าคีย์เป็นอาร์เรย์อาร์เรย์ทั้งหมดเหล่านี้จะถูกเก็บไว้ในอาร์เรย์ |
37 | hash.to_hash ผลตอบแทนที่ได้แฮช (ตัวเอง) |
38 | hash.to_s กัญชาจะถูกแปลงเป็นอาร์เรย์แล้วอาร์เรย์จะถูกแปลงเป็นสตริง |
39 | hash.update (other_hash) [หรือ] hash.update (other_hash) {| สำคัญ oldval, newval | บล็อก} ส่งกลับกัญชาใหม่กัญชามีเนื้อหาและother_hashเขียนซ้ำกัญชาสำคัญกับother_hash กับคู่คีย์ซ้ำ |
40 | hash.value (ค่า) ตรวจสอบว่ากัญชามีค่าที่กำหนด |
41 | hash.values ก็จะส่งกลับอาร์เรย์ใหม่ที่มีค่าทั้งหมดของกัญชา |
42 | hash.values_at (obj, th. ) ก็จะส่งกลับอาร์เรย์ใหม่ที่มีค่าแฮชที่เกี่ยวข้องกับการที่สำคัญที่กำหนด |