代码之家  ›  专栏  ›  技术社区  ›  city

AKKA接收方法报告错误

  •  1
  • city  · 技术社区  · 12 年前

    我正在ubuntu 12.04下使用scala 2.10和Akka 2.2.1进行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个多小时。我已经做了我能做的,但我仍然无法解决它。 谢谢

    2 回复  |  直到 12 年前
        1
  •  4
  •   Heiko Seeberger    12 年前

    你不能向 Actor ,但仅限于 ActorRef 改变 n Array[ActorRef] 它应该起作用。

    顺便说一句,您可以更容易、更高效地迭代集合和数组,例如。

    n foreach (ref => ref ! message)

        2
  •  1
  •   joescii    12 年前

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