【问题标题】:AKKA receive method reports errorAKKA接收方法报错
【发布时间】:2013-10-02 09:06:53
【问题描述】:

我正在使用 scala 2.10 和 Akka 2.2.1 在 ubuntu 12.04 下开发 eclipse。

abstract class Node extends Actor {
  var n : Array[Node] // def n
  //..... I do not def receive here
}

class FNode extends Node {
  def receive = {
    case message => for(i <- 0 until n.size)
      n(i) ! message  // n is array. send message to all elements in n
      // ....
  }
}

现在,eclipse 总是报告

value ! is not a member of Node.

我不知道如何解决。我在这上面浪费了 3 个多小时。我已经做了我能做的,但我仍然无法解决它。 谢谢!

【问题讨论】:

  • 能否包含n的定义?

标签: eclipse scala akka


【解决方案1】:

您不能向Actor 发送消息,而只能向ActorRef 发送消息。将n 更改为Array[ActorRef],它应该可以工作。

顺便说一句,您可以更轻松地迭代集合和数组,并且可能更高效,例如

n foreach (ref => ref ! message)

【讨论】:

    【解决方案2】:

    我相信问题在于!是为 ActorRef 类型定义的,而不是您的 Node 类型扩展的 Actor 类型。

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 1970-01-01
      • 2020-10-06
      • 2017-05-15
      • 2012-01-30
      • 1970-01-01
      • 2016-02-01
      • 2016-03-07
      • 1970-01-01
      相关资源
      最近更新 更多