2009-06-29 9 views
6

जब मैं फोन:स्काला केस केस में लापता तर्क "भरने" कैसे है?

actor_ ! Exit 

इस के निर्माण में परिवर्तित किया जा रहा है कैसे:

case class Exit(from: AbstractActor, reason: AnyRef) 

विशेष रूप से, यह कैसे है कि जब मैं एक दूरस्थ (ग्राहक) अभिनेता से इस फोन जो link एक दूरस्थ (सर्वर) अभिनेता को एड किया गया, उस सर्वर Exit का एक उदाहरण प्राप्त करता है जहां from संपत्ति एक अभिनेता है:

'[email protected](10.10.7.90,8366) 

असल में मैं यह जानना चाहता हूं कि मैं इस रिमोट-क्लाइंट-अभिनेता ऑब्जेक्ट पर कैसे संभाल सकता हूं!

उत्तर

2

जो आप भेज रहे हैं वह सिंगलटन ऑब्जेक्ट Exit है। स्कैला एपीआई में, बस कक्षाओं के नीचे स्क्रॉल करें, और ऑब्जेक्ट्स को देखें।

object Exit 
extends (AbstractActor, AnyRef) => Exit 

अब, मैंने आपका कोड नहीं देखा है, इसलिए मुझे नहीं पता कि आप इसका उपयोग कैसे कर रहे हैं। ध्यान दें, हालांकि, यह ऑब्जेक्ट बाहर निकलें (वास्तव में, विस्तारित करता है) एक फ़ंक्शन होता है, जो दो पैरामीटर लेता है और उनके द्वारा बनाई गई एक्जिट केस क्लास देता है। इसमें केस क्लास स्टेटमेंट द्वारा कुछ सामान भी लगाए जाएंगे।

या, दूसरे शब्दों में, Exit.apply (x, y) (फ़ंक्शन से बाहर निकलने का कार्य) बाहर निकलने के परिणामस्वरूप बाहर निकलें (x, y) (कक्षा से बाहर निकलने के लिए कन्स्ट्रक्टर)। लेकिन जब आप कक्षा उत्तीर्ण नहीं कर सकते हैं, तो आप एक ऑब्जेक्ट पास कर सकते हैं।

+0

आह; आईडीईए मुझे गलत कक्षा में इंगित कर रहा है। प्रश्न अभी भी खड़ा है; सार तत्व और संदेश कहां से आ रहे हैं? और केस क्लास से बाहर निकलने के उदाहरण के रूप में यह कैसे समाप्त हो रहा है? –

+0

मेरा कोड मूल रूप से "अभिनेता_! बाहर निकलें" है। मैं कुछ भी करने के लिए किसी भी चर गुजर रहा हूँ। और फिर भी अभिनेता_ कुछ प्यारे और सटीक मूल्यों के साथ बाहर निकलने के लिए बाहर निकलता है (से, msg) केस क्लास। और ऑब्जेक्ट एक्जिट बाइनरी फ़ंक्शन का विस्तार कैसे करता है जब यह लागू() विधि घोषित नहीं करता है? –

+0

आह, लेकिन बाहर निकलें एक आवेदन() विधि घोषित करता है! यह प्रकार है "(सार तत्व, AnyRef) => बाहर निकलें", जो "फंक्शन 2 [सार तत्व, AnyRef, निकास]" जैसा ही है। चूंकि फंक्शन 2 एक आवेदन की घोषणा करता है, इसलिए बाहर निकलना होगा। –