将案例应用于scala中的act()

时间:2010-09-23 06:50:24

标签: scala

我想知道如何将匹配和案例应用于我的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 个答案:

答案 0 :(得分:5)

act类上的Actor方法不应该使用值调用。它从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)