要说case object用于模式匹配,普通object也能被用于模式匹配中,看例子:
scala> trait IA
defined trait IA
scala> val x :IA = A4
x: IA = A4$@939bdb
scala> x match{
| case A4 =>
| }
看上去没有什么区别。Google了一下,发现stackoverflow.com上也有人提出疑问( http://stackoverflow.com/questions/5270752/difference-between-case-object-and-object)。其实在我看来最主要的区别是,case object 所定义的对象能用于序列化,而普通的object不能,这在使用Actor编写网络程序时尤其要注意。