2010-09-23 82 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