请看下面的代码:
def receive: Receive = {
case Begin(msg, expectedReply, signalSuccessWith, replyTo, receiver, pause) => {
receiver ! msg
val cancelHandle = context.system.scheduler.schedule(pause, pause, context.self, Retry)
context.become(runtime(Begin(msg, expectedReply, signalSuccessWith, replyTo, receiver, pause), cancelHandle))
}
case _ =>
}
您可以看到,Begin
在调用时,我必须完全复制case类的值context.become
,即传递其全部参数。那行得通,但对我来说似乎是重复的代码。有没有办法以某种方式按原样获取匹配的值并将其传递?
像那样:
def receive: Receive = {
case fullMsg @ Begin(msg, expectedReply, signalSuccessWith, replyTo, receiver, pause) => {
receiver ! msg
val cancelHandle = context.system.scheduler.schedule(pause, pause, context.self, Retry)
context.become(runtime(fullMsg, cancelHandle))
}
case _ =>
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句