ठीक है, इसलिए मैं एक हैश बनाना चाहता था जिसमें डिफ़ॉल्ट हैश के रूप में एक खाली हैश है। थोड़ा अजीब, मुझे पता है, लेकिन मान लें कि मैंने सोचा कि यह उपयोगी हो सकता है।हैश.न्यू ({}) हैश सदस्यों को क्यों छुपाता है?
तो यहाँ मैं क्या किया है:
>> a = Hash.new({})
=> {}
>> a[:a][:b] = 5
=> 5
>> a
=> {}
>> a[:a]
=> {:b=>5}
>> a.keys
=> []
>> a.size
=> 0
>> a[:a].size
=> 1
दूसरे शब्दों में, मैं हैश सदस्य जब मैं हैश का निरीक्षण नहीं दिख रहा है, लेकिन मैं उसके प्रमुख तक पहुँच सकते हैं।
क्या यह अपेक्षित व्यवहार है? यहाँ क्या हो रहा है?
बीटीडब्ल्यू, यह रूबी 1.9.1 है, पिछले संस्करणों की कोशिश नहीं की है।
संपादित करें: सरलीकृत उदाहरण के रूप में यह हैश के हैश का एक हैश होने के लिए नहीं है ...
भी 1.8.7 पर पुन: उत्पादित। –