दिलचस्प पोस्ट
आप जावा में एक धागा कैसे मार सकते हैं? jQuery: कस्टम विशेषता के साथ सभी तत्व का चयन करें कुछ डॉलर मूल्य दिए जाने पर सिक्कों के सभी संयोजन कैसे प्राप्त करें सेगमेंटेशन फॉल्ट्स के लिए सामान्य कारणों की निश्चित सूची शून्य मुख्य और इंट मुख्य के बीच का अंतर? express.js के साथ स्थिर फ़ाइलें आईई 8 में निहित तत्व को प्रभावित किए बिना डिव की पृष्ठभूमि की अपारदर्शिता? कैसे jQuery के साथ अनुरोधों में पैरामीटर पारित करने के लिए लॉगिन के लिए प्रमाणीकरण फ़िल्टर और सर्वलेट सेटिंग्स को कैसे बदलें <String> Settings.Default पर? OpenMp में सरणी को कम करना ऑपरेटर से अधिक या उससे कम का उपयोग करते हुए दो सूचियों की तुलना करना UnauthorizedAccessException Directory.GetFiles विफलता को हल नहीं कर सकता क्यों दोनों isset () और खाली चेक () बाधाओं को सक्षम करने में विफल एक या अधिक पंक्तियों में गैर-अशक्त, अनूठे, या विदेशी-प्रमुख बाधाओं का उल्लंघन करने वाले मान शामिल हैं

ब्लॉक परिभाषा – ब्रेसिज़ और एंड-एंड में अंतर?

कोई भी यह बता सकता है कि निम्न कोड एक त्रुटि के साथ क्यों रोकता है

irb(main):186:0> print ((1..10).collect do |x| x**2 end) SyntaxError: (irb):186: syntax error, unexpected keyword_do_block, expecting ')' print ((1..10).collect do |x| x**2 end) ^ (irb):186: syntax error, unexpected keyword_end, expecting $end print ((1..10).collect do |x| x**2 end) ^ from /usr/bin/irb:12:in `<main>' 

जबकि एक ही कार्यक्षमता के साथ निम्नलिखित कोड अपेक्षित काम करता है?

 irb(main):187:0> print ((1..10).collect { |x| x**2 }) [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]=> nil 

मैंने विश्वास किया कि घुंघराले-ब्रेसिज़ "{}" ब्लॉक परिभाषा में "अंततः" अंतःस्थापित कर सकते हैं I

मुझे पता है कि मैं प्रिंट विधि और पहले कोष्ठक के बीच एक अंतरिक्ष को छोड़कर पहली कॉल "ठीक" कर सकता हूं, लेकिन मुझे स्पष्टीकरण में दिलचस्पी है कि वह अलग-अलग क्यों व्यवहार करता है

वेब के समाधान से एकत्रित समाधान "ब्लॉक परिभाषा – ब्रेसिज़ और एंड-एंड में अंतर?"

अंतर पूर्वता है:

 # Equivalent to puts( (1..10).map { |i| i*2 } ) > puts (1..10).map { |i| i*2 } 2 4 6 8 10 12 14 16 18 20 => nil # Equivalent to puts( (1..10).map ) { |i| i*2 } > puts (1..10).map do |i| i*2 end #<Enumerator:0x928f24> => nil 

पहले मामले में, ब्लॉक map करने के लिए पारित किया गया है, और सब कुछ ठीक से काम करता है। दूसरे मामले में, ब्लॉक को पास करने के लिए पारित किया जाता puts , जो इसके साथ कुछ भी नहीं करता है। map एक ब्लॉक प्राप्त नहीं करता है और सिर्फ एक गणक देता है

सिंटैक्स त्रुटि के लिए, यदि आप print और ( सब कुछ काम करता है) के बीच की जगह निकालते हैं;

फर्क यह है कि क्या रूबी अपने कणों को विधि तर्क सीमांकक के रूप में इलाज कर रहा है या यह एक सामान्य विवरण समूह है या नहीं। मुझे यकीन नहीं है कि वहां पर सटीक अंतर है लेकिन यह सूक्ष्म और परेशान है

पहले से ही SO पर एक अंतिम उत्तर है

दुर्भाग्य से, रूबी के पीछे निश्चित रूप से कम से कम आश्चर्य दर्शन का कोई अच्छा प्रदर्शन नहीं है।