2013-08-10 8 views
5

मैं स्क्वाक सीख रहा हूं और मैं सोच रहा था कि किसी ऑब्जेक्ट को भेजे जाने वाले संदेश को 'स्टोर' करने का कोई तरीका है या नहीं।स्मॉलटॉक प्रतिनिधिमंडल/संदेश चयनकर्ताओं को संग्रहीत करना

उदाहरण के लिए मैं निम्नलिखित ऐसा करने में सक्षम होना चाहते हैं:

Delegator>>performWith: arg 
    |target method| 
    target := MyObject new. 
    method := #myMethod. "Not sure what goes here" 
    target sendMessage: method withArgs: arg. "Or how this call would work" 

एक वैकल्पिक दृष्टिकोण दोनों लक्ष्य और एक ब्लॉक में विधि निर्दिष्ट करने के लिए किया जाएगा। हालांकि उपर्युक्त दृष्टिकोण का उपयोग करना संभव है?

उत्तर

4

ठीक है, शायद मैं आपके सवाल का गलत समझा, लेकिन आप लगभग जवाब अनुमान लगाया: अपने 'लक्ष्य' को यह संदेश भेजें:

करते हैं: aSymbol साथ: anObject

या:

करते हैं: aSymbol withArguments: anArrayOfArguments

अपने उदाहरण में:

लक्ष्य करते हैं: विधि के साथ: ARG

+0

आह मुझे प्रदर्शन संदेश से अवगत नहीं था। धन्यवाद – ahjmorton

4

तुम भी MessageSend वस्तु का एक उदाहरण का उपयोग कर प्रयास कर सकते हैं।

msg := MessageSend receiver: target selector: #myMethod arguments: #(arg1 arg2). 
msg value. "sends the message to it's receiver" 

संदेशसेन्ड का उपयोग इस प्रकार किया जा सकता है। स्क्वाक, फारो इत्यादि। संदेश संदेश को मॉर्फिक अलार्म के लिए बेस क्लास के रूप में उपयोग करें - जो भविष्य में किसी निश्चित समय तक संदेश के निष्पादन में देरी के लिए उपयोग कर सकता है।

हैप्पी कोडिंग!

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