2010-01-06 17 views
12

अगर मैं ग्रूवीलागू ग्रूवी closures

में एक बंद करने को परिभाषित
def c = {println "foo"} 

मैं या तो

c() 

या

c.call() 

AFAIK का उपयोग कर इसे आह्वान कर सकते हैं, इन दोनों समान हैं। हालांकि, मैं हाल ही में एक तीसरा रास्ता खोज की

c.doCall() 

वहाँ call() और doCall()

धन्यवाद, डॉन

उत्तर

11

doCall विधि क्या लागू हो जाता है जब आप ग कहते हैं() या ग के बीच कोई मतभेद .call()।

मुझे एक उदाहरण मिला जिसमें दावा किया गया कि इसका उपयोग अंदर से बंद करने के लिए किया जाता है, लेकिन ऐसा लगता है कि कॉल() भी काम करता है।

documentation कहता है कि आपको छोटे फॉर्म में बंद करने के लिए पैरामीटर निर्दिष्ट करने के लिए एक डॉक() विधि प्रदान करने की आवश्यकता है (स्पष्ट रूप से कॉल() का उपयोग किए बिना)। लेकिन मुझे नहीं पता कि वे वास्तव में काम करने की अपेक्षा करते हैं।

Here's an explanation of call vs. doCall.

+2

क्या आप से क्या मतलब है की (शायद एक उदाहरण देता हूँ) व्याख्या कर सकते हैं "आप संक्षिप्त रूप में बंद के कॉल करने के लिए में पैरामीटर निर्दिष्ट करने के लिए एक doCall() विधि उपलब्ध कराने की आवश्यकता" –

संबंधित मुद्दे