Rubykoans about_hashes.rb

Possible Duplicate:
How does shovel (<<) operator work in ruby Hashes?

दस्तावेज खोजने के लिए संघर्ष क्यों यह इस तरह से काम करता है:

1 def test_default_value_is_the_same_object
2    hash = Hash.new([])
3
4    hash[:one] << "uno"
5    hash[:two] << "dos"
6
7    assert_equal ["uno", "dos"], hash[:one]
8    assert_equal ["uno", "dos"], hash[:two]
9    assert_equal ["uno", "dos"], hash[:three]
10
11   assert_equal true, hash[:one].object_id == hash[:two].object_id
12 end

मैंने सोचा होगा कि "uno" हैश को सौंपा जाएगा [: एक] कुंजी और हैश [: दो] "डॉस" प्राप्त होगा। मैंने इसे सही कर दिया है ताकि यह परीक्षण पास कर सके, हालांकि मुझे नहीं पता कि यह इस तरह से क्यों चल रहा है। क्या कोई इस बात को इंगित कर सकता है कि मैं क्या खो रहा हूं या मुझे इस विशेष पहलू पर प्रासंगिक दस्तावेज के लिए निर्देशित कर सकता हूं। धन्यवाद।

0
जोड़ा संपादित
विचारों: 1

2 उत्तर

कोई : एक कुंजी नहीं है, साथ ही साथ : two कुंजी है। इनमें से किसी भी कुंजी के तहत मूल्य तक पहुंचने का प्रयास करने से डिफ़ॉल्ट मान, यानी सरणी होती है, जिसे आपने हैश हैश.न्यू ([]) में प्रारंभ किया है।

0
जोड़ा

मैंने सोचा होगा कि "uno" हैश को सौंपा जाएगा [: एक] कुंजी और हैश [: दो] "डॉस" प्राप्त होगा

They are not assigned (=), they are pushed (<<) into hash[:one].

0
जोड़ा
मुझे बस यह लिंक मिला stackoverflow.com/questions/9343680/… जिसने इसे समझाया, धन्यवाद!
जोड़ा लेखक Tom, स्रोत