要說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編寫網絡程序時尤爲要注意。