आप शायद निम्नलिखित रूबी आशुलिपि ( aएक सरणी है) से परिचित हैं :
a.map(&:method)
उदाहरण के लिए, irb में निम्नलिखित प्रयास करें:
>> a=[:a, 'a', 1, 1.0]
=> [:a, "a", 1, 1.0]
>> a.map(&:class)
=> [Symbol, String, Fixnum, Float]
वाक्यविन्यास a.map(&:class)एक आशुलिपि है a.map {|x| x.class}।
रूबी में " मैप (और: नाम) का क्या अर्थ है? " इस सिंटैक्स के बारे में और पढ़ें ।
वाक्य रचना के माध्यम से &:class, आप classप्रत्येक ऐरे तत्व के लिए एक विधि कॉल कर रहे हैं ।
मेरा सवाल है: क्या आप मेथड कॉल के लिए तर्क दे सकते हैं? और यदि हां, तो कैसे?
उदाहरण के लिए, आप निम्न सिंटैक्स को कैसे परिवर्तित करते हैं
a = [1,3,5,7,9]
a.map {|x| x + 2}
करने के लिए &:वाक्य रचना?
मैं सुझाव नहीं दे रहा हूं कि &:वाक्य रचना बेहतर है। मैं केवल &:तर्क के साथ वाक्यविन्यास का उपयोग करने के यांत्रिकी में दिलचस्पी रखता हूं ।
मुझे लगता है कि आप जानते हैं कि +यह इंटेगर क्लास का एक तरीका है। आप irb में निम्नलिखित प्रयास कर सकते हैं:
>> a=1
=> 1
>> a+(1)
=> 2
>> a.send(:+, 1)
=> 2