का उपयोग करते समय स्वयं के लिए मूल्य प्रदान करें रूबी में एक लैम्ब्डा फ़ंक्शन को कॉल करने के लिए प्रो # कॉल का उपयोग करते समय, self
फ़ंक्शन को परिभाषित करते समय उस मान के साथ हमेशा समाप्त होता है, जब फ़ंक्शन परिभाषित होता है कहा जाता है, उदाहरण के लिए:प्रो # कॉल
$p = lambda { self }
class Dummy
def test
$p.call
end
end
d = Dummy.new
> d.test
=> main
test
रिटर्न main
, जब मैं क्या वापस जाने के लिए यह इरादा #<Dummy:0xf794>
है कॉलिंग - Dummy
का एक उदाहरण है, जो कोड है, जहां मैं $p
कहा जाता है में बिंदु पर self
का मूल्य था।
जावास्क्रिप्ट में, मैं केवल ऑब्जेक्ट पास कर दूंगा कि मैं call
पर पहला तर्क के रूप में "कैली" बनना चाहता हूं। जब मैं एक Proc
फोन वहाँ रूबी में किसी भी तरह के कार्यक्षमता, मुझे एक मनमाना वस्तु स्थापित करने के लिए अनुमति देता है कम से कम self
की वर्तमान मूल्य है, या, self
के लिए नए मूल्य के रूप में?
मैंने सोचा था कि '$ p.bind (some_object) 'काम कर सकता है, लेकिन स्पष्ट रूप से' बाइंड 'केवल' UnboundMethod' ऑब्जेक्ट के साथ काम करता है। क्या एक proc को unboundMethod में घुमाया जा सकता है? –