我正在使用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个多小时。我做了我能做的事,但我仍然无法解决。 谢谢!
答案 0 :(得分:4)
您无法向Actor
发送消息,只能向ActorRef
发送消息。将n
更改为Array[ActorRef]
,它应该有效。
顺便说一句,您可以更轻松地迭代集合和数组,例如。
n foreach (ref => ref ! message)
答案 1 :(得分:1)
我相信问题就在于此!是为ActorRef类型定义的,而不是Node类型扩展的Actor类型。