L.S.스칼라 셸에서 실행 된 예제의 동작을 설명 할 수 없습니다.
저는 Odersky 외의 "Programming in Scala"를 사용하여 스칼라를 배웠습니다.
내가 배우에게 연기 한 장에서 나는 설명 할 수 없다. '자기'에 메시지를 보내려고 할 때 구체적 스칼라 쉘에서 입력
(또한 example 참조) :
scala> import scala.actors.Actor._
import scala.actors.Actor._
scala > self ! "Hello"
scala > self.receive { case x => x }
그러나 마지막 줄 않는 것으로 대답하지 '복귀'
내 입력을 받아들이는 다시 쉘을 얻기 위해 Ctrl-C를을하고 필요에resX:Any = hello
메시지를 반환 :
Execution interrupted by signal.
scala> self.receive {case x => x}
// She's gone rogue, captain! Have to take her out!
// Calling Thread.stop on runaway Thread[Thread-54,5,main] with offending code:
// scala> self.receive {case x => x}
는하지만 실제로 작동 다음
:
self ! "Hello" ; self.receive { case x => x }
내 질문은 : 무슨 일 이죠
? 첫 번째 예제가 작동하지 않고 두 번째 예제가 작동하지 않는 이유는 무엇입니까? 필자는 배우의 답변을받는 사람으로 self를 사용하는 것이 멋진 디버깅 기술이라고 주장하면서 책의 저자가 조금 더 잘 이해하고 싶습니다.
아하, 이거 말이야! 감사합니다. @Alexey. – nanitous