2013-10-02 2 views
1

Я работаю над затмением под ubuntu 12.04 с помощью scala 2.10 и Akka 2.2.1.AKKA получить метод сообщает об ошибке

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 часов на это. Я сделал все, что мог, но я до сих пор не могу его решить. Спасибо!

+0

Можете ли вы включить определение n? – joescii

+0

@barnesjd, добавляю его – city

ответ

4

Вы не можете отправлять сообщения на номер Actor, но только до ActorRef. Измените n на Array[ActorRef], и он должен работать.

К слову, вы можете итерировать коллекции и массивы проще и, возможно, более эффективно, например.

n foreach (ref => ref ! message)

+1

он работает, большое спасибо !!! – city

1

Я считаю, что проблема в том, что! определяется для типа ActorRef, а не для типа Actor, который расширяет ваш тип узла.

Смежные вопросы