2010-09-23 83 views
1

我想知道如何将匹配和案例应用到我的act()方法。这是我的tempObject类在斯卡拉申请案件act()

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") 

    } 
} 

因此,应该发生的事情是,当我通过一个对象采取行动()是什么,它调用所需的方法,根据对象内部的值。上述代码是否正确执行我的愿望?

回答

5

Actor类中的act方法不应该使用值调用。它从演员的邮箱中挑选值并在其上工作。正确的方法是这样的:

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) 
+0

非常感谢。这清除了一个误解。 – theTuxRacer 2010-09-23 07:12:04