2013-10-31 2 views
2

나는 akka와 배우를 결합하는 예제 코드를 작성하려고합니다. 하지만 코드를 컴파일 할 때 오류 메시지가 나타납니다.
코드는 아래와 같이 매우 간단합니다.
그래서, 내가 잘못 먹었습니까? 그것은 !의 인수로 execute(cmd.toString)을 해석하는 것Akka 유형 불일치; [오류] 발견 : 단위 [오류] 필수 : ​​scala.sys.process.ProcessLogger

import scala.sys.process._ 
import akka.actor._ 

object TryActor { 

    def main(args: Array[String]) { 
    val akkaSystem = ActorSystem("akkaSystem") 
    val worker = akkaSystem.actorOf(Props[Worker], name = "work0") 
    worker ! Command("ls") 
    } 

    case class Command(cmd: String) 

    class Worker extends Actor { 

    def receive = { 
     case Command(cmd) => { 
     println(cmd) 
     "echo recieve message from someone" ! 
     execute(cmd.toString) 
     } 
    } 

    def execute(cmd: String) { 
     val process = Process(cmd.toString) 
     process ! ProcessLogger(_ => {}) 
    } 
    } 

} 

답변

5

줄 바꿈이 반드시 문을 종료하지 않기 때문에

[error] /home/qos/workspaces/actors/actors.scala:20: type mismatch; 
[error] found : Unit 
[error] required: scala.sys.process.ProcessLogger 
[error]   execute(cmd) 
[error]    ^
[error] one error found 
[error] (compile:compile) Compilation failed 

코드이다. 이 문제를 해결하려면 이유가 없으면 사용되지 않는 postfix 구문을 사용하지 마세요.

+0

uhhhhh .. 알았습니다. 얼마나 어리석은가 .... – hellojinjie

관련 문제