Применение случаев к действию () в Scala - PullRequest
1 голос
/ 23 сентября 2010

Мне было интересно, как применить сопоставление и регистр к моему методу act (). Это мой класс tempObject

case class tempObject(typeOfData: Int) {} 

А это мой актер:

object StorageActor extends Actor {

  def act(TO: tempObject) = TO match {

    case TO(0) => println("True")
    case TO(1) => println("False")

  }
}

Итак, когда я передаю объект в act (), он вызывает нужный метод, в зависимости от значений внутри объекта. Является ли приведенный выше код правильным, чтобы выполнить то, что я желаю?

1 Ответ

5 голосов
/ 23 сентября 2010

Метод act в классе Actor не должен вызываться со значением. Он выбирает значения из почтового ящика актера и работает с ними. Правильный способ сделать это так:

case class TempObject(typeOfData: Int)

object StorageActor extends Actor {
  def act() {
    loop {
      react {
        case TempObject(0) => println("True")
        case TempObject(1) => println("False")
      }
    }
  }
}

StorageActor.start
StorageActor ! TempObject(0)
StorageActor ! TempObject(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...