1

我正在使用 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
      // ....
  }
}

现在,日食总是报告

value ! is not a member of Node.

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

4

2 回答 2

4

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

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

n foreach (ref => ref ! message)

于 2013-10-02T01:01:33.880 回答
1

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

于 2013-10-02T01:04:44.140 回答