चूंकि हैश स्वाभाविक रूप से ऑर्डर नहीं किए गए हैं, इसलिए अप्लाई करने की धारणा नहीं है। हालांकि, रूबी हैश 1.9 इंसर्शन ऑर्डर बनाए रखता है। यहां नई कुंजी / मूल्य जोड़े जोड़ने के तरीके दिए गए हैं।
सबसे सरल उपाय है
h[:key] = "bar"
यदि आप एक विधि चाहते हैं, तो उपयोग करें store
:
h.store(:key, "bar")
यदि आप वास्तव में, वास्तव में "फावड़ा" ऑपरेटर ( <<
) का उपयोग करना चाहते हैं , तो यह वास्तव में हैश के मूल्य को एक सरणी के रूप में जोड़ रहा है, और आपको कुंजी निर्दिष्ट करनी होगी:
h[:key] << "bar"
उपरोक्त केवल तभी काम करता है जब कुंजी मौजूद होती है। एक नई कुंजी संलग्न करने के लिए, आपको एक डिफ़ॉल्ट मान के साथ हैश को इनिशियलाइज़ करना होगा, जिसे आप इस तरह कर सकते हैं:
h = Hash.new {|h, k| h[k] = ''}
h[:key] << "bar"
आप बंदर पैच हैश को एक फावड़ा ऑपरेटर को शामिल करने के लिए लुभा सकते हैं जो आपके द्वारा लिखे गए तरीके से काम करता है:
class Hash
def <<(k,v)
self.store(k,v)
end
end
हालांकि, यह अन्य संदर्भों में फावड़ा ऑपरेटर के लिए लागू "सिंटैक्टिक शुगर" का वारिस नहीं करता है:
h << :key, "bar"
h.<< :key, "bar"
h[:key] = "bar"
?