我有以下类:
class MessageProcessorActor(private val destination : ActorRef) extends Actor{
override def receive: Receive = {
case _ =>
destination ! {
case MyActor.TracableMessage(msg) => MyActor.TracableMessage("Processed + " + msg)
case MyActor.Message(msg) => MyActor.Message("Processed + " + msg)
case _ => "Processed + " + _
}(_)
}
}
object MyActor{
case class TracableMessage(private val msg: String) extends Message(msg)
case class Message(private val msg: String)
}其中Recieve定义为
type Receive = PartialFunction[Any, Unit]在这里,我试图避免声明持有PartialFunction[Any, Any]的val,而是这样调用它。但是编译器拒绝了这个代码。它打印:
Error:(12, 6) ';' expected but '(' found.
}(_)
^有没有做这样的事情的捷径?
发布于 2016-08-24 01:29:52
你为什么要试着这样写呢?关注有什么问题吗?
class MessageProcessorActor(private val destination : ActorRef) extends Actor{
override def receive: Receive = {
case MyActor.TracableMessage(msg) => {
destination ! MyActor.TracableMessage("Processed + " + msg)
}
case MyActor.Message(msg) => {
destination ! MyActor.Message("Processed + " + msg)
}
case _ => {
destination ! "Processed + " + _
}
}
}
object MyActor{
case class TracableMessage(private val msg: String) extends Message(msg)
case class Message(private val msg: String)
}https://stackoverflow.com/questions/39105068
复制相似问题