प्रेषकों को एक और संदेश के साथ जवाब देने वाले कलाकारों के बहुत सारे उदाहरण हैं, लेकिन एपीआई दस्तावेज़ों को ब्राउज़ करते समय मैंने देखा !! तथा !? ऑपरेटरों जो CanReply विशेषता का हिस्सा हैं (जो 2.8: http://www.scala-lang.org/archives/rc-api/scala/actors/CanReply.html के लिए नया प्रतीत होता है)। इसलिए मैं सोच रहा था कि क्या यह प्राप्त करने का एक मामला था/प्रतिक्रिया ब्लॉक एक मूल्य लौटाता है, यानी यूनिट के अलावा आंशिक फ़ंक्शन वापसी प्रकार कुछ बनाते हैं?स्कैला कलाकार कैसे संदेश के जवाब में एक मूल्य वापस कर सकते हैं?
मैं स्रोत के माध्यम से खोदना शुरू कर दूंगा कि वे इसका उपयोग करने के लिए कैसे काम कर रहे हैं, लेकिन अगर किसी के पास कोई अंतर्दृष्टि है या गहन दस्तावेज़ीकरण या उदाहरणों के बारे में पता है तो मैं सबसे आभारी हूं ।
चीयर्स, पॉल।
import scala.actors._
class Reverser extends Actor {
def act() { Actor.loop { react {
case s: String => Thread.sleep(1000); reply(s.reverse)
case _ => exit()
}}}
}
तीन तरीके स्पष्ट जबाब स्वीकार करने के लिए कर रहे हैं: जैसा कि यहाँ दिखाया
कि के लिए धन्यवाद प्राप्त करता है, तो आप इस चलाने! मैं भी अपने आप को खोज का एक सा था और यह पाया: http://java.dzone.com/articles/scala-threadless-concurrent जो यह की तिथि के अनुसार चलता है कि ऑपरेटरों नहीं नई 2.8, यहां तक कि कर रहे हैं अगर CanReply विशेषता है। – pdbartlett
@pdbartlett: यह सही है। उपर्युक्त कोड 2.7 में भी काम करेगा, सिवाय इसके कि '.reverse' 2.7 में स्ट्रिंग का उत्पादन नहीं करता है, इसलिए उदाहरण तब तक काम नहीं करेगा जब तक आप' .reverse.toString' नहीं करते। लेकिन सभी अभिनेता/भविष्य की चीज़ें ठीक काम करती हैं। –