Ruby Print Inject Do Syntax -
ऐसा क्यों है कि निम्न कोड ठीक चलाता है
p (1..1000) .inject (0) {| sum, i | Sum + i}
लेकिन, निम्न कोड एक त्रुटि देता है
p (1..1000)। इंजेक्ट (0) करें | sum, i | Sum + i अंत चेतावनी: फिक्स नं को 'इंजेक्ट' में चिन्ह के रूप में न प्रयोग करें: 0 कोई प्रतीक नहीं है (आर्गमेंट एरर)
क्या वह बराबर नहीं होना चाहिए?
घुंघराले ब्रेसिज़ का इस्तेमाल करते हुए ब्लॉक इंजेक्शन विधि से जोड़ता है, जो कि आपका इरादा है, और यह ठीक काम करेगा।
हालांकि, ब्लॉक जो कि / अंत ब्लॉक में समझाया गया है, वह पी-पद्धति से जुड़ जाएगा। इसके कारण, इंजेक्ट कॉल में एक संबद्ध ब्लॉक नहीं है। इस मामले में, इंजेक्ट तर्क की व्याख्या करेगा, इस मामले में 0, हर वस्तु पर कॉल करने के लिए एक विधि नाम के रूप में। Bacuase 0 एक प्रतीक नहीं है जिसे एक विधि कॉल में बदला जा सकता है, यह एक चेतावनी उत्पन्न करेगा।
Comments
Post a Comment