它是什么样的实现?

软托运人

akka 网站上,您可以进行以下定义:

sealed trait AccountCommand[Reply] extends ExpectingReply[Reply]
final case class Withdraw(amount: BigDecimal)(override val replyTo: ActorRef[OperationResult])
    extends AccountCommand[OperationResult]

如何分配ActorRefreplyTo

我以代码为例,并尝试在自己的类型上实现:

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 的那部分中,您不必明确提供任何ActorRefs,Effects 似乎是自动完成的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章