要说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编写网络程序时尤为要注意。