रूबी 1.9.2 में नए हैश वाक्य रचना का मतलब है कि मैं निम्नलिखित कर सकते हैं:मैं नए रूबी 1.9.2 हैश सिंटैक्स का उपयोग करके एक कुंजी के रूप में एक पूर्णांक का उपयोग क्यों नहीं कर सकता?
my_hash = {a: 1, b: 2, c: 3}
... जो के बराबर है:
my_hash = {:a => 1, :b => 2, :c => 3}
ठीक है, पुराने वाक्य रचना इसलिए का उपयोग कर यह संभव है यह करने के लिए (पहली कुंजी एक पूर्णांक है):
my_hash = {1 => 1, :b => 2, :c => 3}
और मैं मिल गया है यह नया और इस तरह वर्ष वाक्य रचना मिश्रण भी संभव है:
my_hash = {1 => 1, b: 2, c: 3}
तो, अगर हम 'कम से कम आश्चर्य की बात है के सिद्धांत' आह्वान, एक उम्मीद होती है कि निम्नलिखित कानूनी होगा:
my_hash = {1: 1, b: 2, c: 3}
... लेकिन यह नहीं है।
SyntaxError: (irb):40: syntax error, unexpected '='
my_hash = = {1: 1, b: 2, c: 3}
किसी को भी अगर यह इस पार्सर की एक सीमा है व्याख्या कर सकते हैं, या वहाँ बहुत अच्छा कारण यह संभव है, या अनुमति नहीं है: यह एक सिंटैक्स त्रुटि उत्पन्न करता है?
चूंकि 'ए: 1'': a => 1' के बराबर है और 'a => 1' के बराबर नहीं है, तो पीओएलएस निर्देश देता है कि' 1: 1' '1: 1 => 1' के बराबर होना चाहिए और यह है - दोनों एक वाक्यविन्यास त्रुटि का कारण बनता है। – sepp2k
हाँ ... मैं इसे अब देखता हूं; बेशक! विडंबना यह है कि यह एकमात्र प्रयोग है जिसे मैंने कोशिश नहीं की थी। मुझे लगता है कि पोल्स के रास्ते में मेरे अपने सिरदर्द preconceptions मिल गया! स्पष्टीकरण के लिए धन्यवाद। – Scott