एक केस क्लास तर्क ले सकता है, इसलिए उस केस क्लास का प्रत्येक उदाहरण इसके तर्कों के मूल्यों के आधार पर भिन्न हो सकता है। दूसरी ओर एक केस ऑब्जेक्ट कन्स्ट्रक्टर में तर्क नहीं लेता है, इसलिए इसमें केवल एक उदाहरण हो सकता है (एक सिंगलटन, नियमित स्कैला object
है)।
यदि आपके अभिनेता को आपका संदेश किसी भी मूल्य भेदभाव की आवश्यकता नहीं है, तो केस ऑब्जेक्ट का उपयोग करें। उदाहरण के लिए, यदि आप एक अभिनेता है कि कुछ काम किया है, और आप, बाहर से था, काम करने के लिए यह बताने के लिए है, तो हो सकता है आप कुछ इस तरह करते हैं चाहते हैं चाहता था:
case object DoWork
...
def receive = {
case DoWork =>
//do some work here
}
लेकिन आप कुछ चाहते थे कैसे काम हो गया है में भिन्नता है, तुम तो जैसे अपने संदेश को फिर से परिभाषित करने के लिए आवश्यकता हो सकती है:
case class DoWorkAfter(waitTime:Long)
...
def receive = {
case class DoWorkAfter(time) =>
context.system.scheduler.scheduleOnce(time.milliseconds, self, DoWork)
case DoWork =>
//do some work here
}