0
Horstman (291-292 페이지) 책의 샘플 코드에 따라 사례 클래스 을 정의하고 간단한 Scala 배우 시스템에서 메시지로 사용하십시오.스칼라의 메시지로 사례 클래스 사용
문제는 클래스가 수신 패턴 일치에서 인식되지 않고 컨트롤이 case _ => 문으로 넘어가는 것입니다.
코드는 다음과 같습니다. 모든 것은 케이스가 아닌 클래스 메시지와 함께 작동합니다.
SENDER : 배우 Rcoord에서 행위 방법은 다음과 같습니다
def act() {
alive(9000)
register('rcoord, self)
proc_reg.start // start the process register actor
loop {
try {
receive {
case 'process =>
process_counter += 1
process_number = process_counter
spawn_process(process_number, sprocs)
case class CreateTS(xxx: Int)
proc_reg ! CreateTS(process_number)
case 'stats =>
Console.println("received msg from client to view statistics")
//sender ! 'ok
case 'stop =>
Console.println("received msg that client is terminating")
//sender ! 'bye
} // end receive
}
catch
{
RECEIVER : 배우에서 proc_reg행위 방법은 다음과 같습니다
def act() {
Console.println("process register started")
case class CreateTS(process_number: Int)
case class UpdateTS(process_number: Int)
loop {
receive {
case CreateTS(process_number) =>
Console.println("create TS msg received from process "+process_number)
register_proc(process_number)
case UpdateTS(process_number) =>
Console.println("update TS msg received for process "+process_number)
update_proc(process_number)
case _ =>
Console.println("sender is: "+sender.toString)
//Console.println("full msg is: "+Msg.toString)
} // end receive
} // end loop
} // end act()
고마워요. 네가 제안한 것을 시도 할 것이다. Akka에 대해 알고 있지만 학습 경험으로는 먼저 Scala 배우를 통해 작업하고 있습니다. 다시 한번 감사드립니다. –