在akka 网站上,您可以进行以下定义:
sealed trait AccountCommand[Reply] extends ExpectingReply[Reply]
final case class Withdraw(amount: BigDecimal)(override val replyTo: ActorRef[OperationResult])
extends AccountCommand[OperationResult]
如何分配ActorRef
给replyTo
?
我以代码为例,并尝试在自己的类型上实现:
case object Channel (override val replyTo: ActorRef[SendMessage])
extends ExpectingReply[SendMessage]
编译器抱怨。
编译器不会抱怨的方式:
case object Channel extends ExpectingReply[SendMessage] {
override def replyTo: ActorRef[SendMessage] = ???
}
akka 网站上的例子有错吗?
如果您的消息没有字段,则可以使用case class
不带参数的 a:
case class Channel()(override val replyTo: ActorRef[SendMessage])
extends ExpectingReply[SendMessage]
如果您询问如何创建这样一个类的实例,那么您应该使用标准的多参数函数调用语法:
val msg = Channel()(sendMessageActorRef)
话虽如此,在我看来,特别是在您链接到的 Akka API 的那部分中,您不必明确提供任何ActorRef
s,Effect
s 似乎是自动完成的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句