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

Can we define trait inside a object in scala

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

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

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

  def props = Props[MusicController]

}

我知道 Scala 对象提供单例能力和一种通过伴随对象定义 class 中所有静态方法的方法。 谁能帮助我理解这种语法?谢谢

你会经常在演员身上看到这一点。在其伴生对象中定义 Actor 响应的消息是一种很好的做法,这发生在此处。

密封的特征部分并不是真正必要的。你只是经常在 Scala 中看到这种情况 classes/objects。此外,sealed 意味着如果您在对它的实例进行模式匹配时匹配不详尽,您将收到警告。