2017-07-31 74 views
0

定义对象的内部特征我刚开始学习Scala和目前通过该Learning Akka当然我们能否在斯卡拉

我感到困惑的代码风格学习阿卡,笔者创建了一个对象内部的特质。

object MusicController { 
    sealed trait ControllerMsg 
    case object Play extends ControllerMsg 
    case object Stop extends ControllerMsg 

    def props = Props[MusicController] 

} 

据我所知,Scala的对象提供单能力和方式,通过同伴对象定义在类的所有静态方法。 任何人都可以帮我理解这个语法吗?谢谢

+0

对象内部的特征类似于java中的静态内部接口,与对象内部的方法类似于静态方法一样。 – Dima

回答

1

你会经常看到与演员。定义Actor在其伴随对象中响应的消息是一种很好的做法,这种情况发生在这里。

密封性状部分并不是真的有必要。你经常在Scala中看到这个case class/objects。而且,它被密封的事实意味着当你对它的实例进行模式匹配时,你不会得到一个警告,说明你的匹配不是穷尽的。

+1

微调:“另外,它被密封的事实意味着你[_will_]会得到一个警告[_if_],当你对它的实例进行模式匹配时,你的匹配并不是详尽无遗的。” – chunjef