हम कीवर्ड तर्क को स्ट्रिंग कुंजी के साथ हैश के रूप में पास नहीं कर सकते हैं, कीवर्ड तर्क केवल हैश के साथ प्रतीक कुंजी के रूप में काम करता है।कीवर्ड तर्कों को प्रतीक कुंजी के साथ हैश के रूप में क्यों पारित किया जाना चाहिए, रूबी में स्ट्रिंग कुंजियां नहीं?
एक साधारण उदाहरण:
def my_method(first_name:, last_name:)
puts "first_name: #{first_name} | last_name: #{last_name}"
end
my_method({last_name: 'Sehrawat', first_name: 'Manoj'})
#=> first_name: Manoj | last_name: Sehrawat
my_method({first_name: 'Bob', last_name: 'Marley'})
#=> first_name: Bob | last_name: Marley
my_method({'first_name' => 'Kumar', 'last_name' => 'Manoj'})
#=> Error: missing keywords: first_name, last_name (ArgumentError)
उसके पीछे के तर्कों क्या है?
मुझे लगता है कि विचार के समान है http://stackoverflow.com/questions/8189416/why- उपयोग-प्रतीकों के रूप में-हैश-चाबियाँ-इन-रूबी – freemanoid
@ फ़्रेमेनोइड मुझे ऐसा नहीं लगता है। इस मामले में, वाक्यविन्यास एक स्थानीय चर को स्वीकार करने के बारे में है। इसमें कोई प्रतीक शामिल नहीं है। – sawa