रुबी में हैश के हैंश बनाने के लिए सुविधाजनक दो (या अधिक) आयामी लुकअप की अनुमति मिलती है। हालांकि, किसी को डालने पर हमेशा यह जांचना चाहिए कि हैश में पहली अनुक्रमणिका पहले से मौजूद है या नहीं। उदाहरण के लिए:रूबी में हैशस इडियॉम का हैश?
h = Hash.new
h['x'] = Hash.new if not h.key?('x')
h['x']['y'] = value_to_insert
यह जहां नए हैश अपने आप बन जाता निम्न कार्य के लिए बेहतर होगा:
h = Hash.new
h['x']['y'] = value_to_insert
इसी प्रकार, जब एक मूल्य जहां पहले सूचकांक पहले से ही मौजूद नहीं है को देख, '[]' त्रुटि के लिए एक अपरिभाषित विधि प्राप्त करने के बजाय शून्य वापस लौटाए जाने पर यह बेहतर होगा।
looked_up_value = h['w']['z']
एक एक हैश आवरण वर्ग इस व्यवहार किया है, लेकिन इस कार्य को पूरा करने के लिए एक मौजूदा एक रूबी मुहावरा है कि बना सकते हैं?
h = Hash.new { |h, k| h[k] = Hash.new }
बेशक
, इस रिकर्सिवली किया जा सकता है:
वहाँ एक हैश है हैश मुहावरे जो एक निश्चित गहराई के बाद 0 लौटाएंगे? (मैं चीजों की गिनती कर रहा हूं और मैं एच का उपयोग कर रहा हूं [: foo] [: bar] [: baz] + = 1) –