2009-06-29 2 views
6

내가 호출 할 때 :스칼라가 사례 클래스에 누락 된 인수를 "채우는"방법은 무엇입니까?

actor_ ! Exit 

이의 건설로 변환되는 방법 : I 원격 (클라이언트) 배우에서이를 호출 할 때 특히

case class Exit(from: AbstractActor, reason: AnyRef) 

, 그것을 얼마나 가지고있는 것을

'[email protected](10.10.7.90,8366) 
다음 from 재산권 배우 여기서 서버 Exit의 인스턴스를 수신하는 원격 (서버) 액터 link ED되고

기본적으로이 원격 클라이언트/액터 개체를 처리 할 수있는 방법을 알고 싶습니다!

답변

2

당신이 보내는 것은 싱글 톤 객체 Exit입니다. Scala API에서 클래스를지나 스크롤하여 객체를 찾습니다.

object Exit 
extends (AbstractActor, AnyRef) => Exit 

이제 코드를 보지 못했지만 사용법을 모르겠습니다. 그러나이 객체 Exit는 두 개의 매개 변수를 사용하고 그것들에 의해 형성된 Exit case 클래스를 반환하는 함수를 (실제로, 확장)합니다. 또한 case 클래스 문으로 일부 항목을 넣을 것입니다.

Exit.apply (x, y) (종료 기능이 적용됨)는 Exit (x, y) (Exit 클래스 생성자)와 동일한 결과를가집니다. 그러나 클래스를 통과 할 수는 없지만 객체를 전달할 수 있습니다.

+0

아아; IDEA가 나를 잘못된 수업에 빠뜨리고 있습니다. 문제는 여전히 남아 있습니다. AbstractActor와 msg의 출처는 어디입니까? 케이스 클래스 Exit의 인스턴스로 어떻게 끝나고 있습니까? –

+0

내 코드는 기본적으로 "actor_! Exit"입니다. 어떤 변수도 전달하지 않습니다. 그리고 actor_는 아름답고 정확한 값으로 Exit (from, msg) 사례 클래스를 보내 게됩니다. 그리고 객체 Exit는 apply() 메소드를 선언하지 않을 때 바이너리 함수를 어떻게 확장합니까? –

+0

아,하지만 Exit는 apply() 메소드를 선언합니다! 유형은 "(AbstractActor, AnyRef) =>"Exit "이며"Function2 [AbstractActor, AnyRef, Exit] "와 동일합니다. Function2는 적용을 선언하므로 종료해야합니다. –