我们可以在scala中的对象内定义特征

时间:2017-07-31 21:14:21

标签: scala akka actor

我刚开始学习scala,目前通过这个Learning Akka课程了解Akka

我对代码风格感到困惑,作者在对象中创建了一个特征。

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

  def props = Props[MusicController]

}

我理解Scala对象提供单例能力,并通过伴随对象定义类中的所有静态方法。 任何人都可以帮我理解这种语法吗?感谢

1 个答案:

答案 0 :(得分:1)

您经常会在Actors中看到这一点。最好定义Actor在其伴随对象中响应的消息,这在此处发生。

密封的特性部分不是必需的。您经常在Scala中看到案例类/对象。此外,它是密封的这一事实意味着当您对其实例进行模式匹配时,您不会收到警告,表明您的匹配并非详尽无遗。