이 케이스 클래스 매치 패턴은 어떻게 작동합니까?
-
21-08-2019 - |
문제
방금 스칼라 에서이 케이스 클래스를 보았습니다 actors
패키지:
case class ! [a](ch: Channel[a], msg: a)
그리고 Javadoc에서는 다음과 같은 형태의 사용법을 설명합니다.
receive {
case Chan1 ! msg1 => ...
case Chan2 ! msg2 => ...
}
왜 그렇지 않은가 :
receive {
case !(Chan1, msg1) => ...
case !(Chan2, msg2) => ...
}
Bang Operator입니다! 결장에서 끝나는 방법과 비슷한 방식으로 특별한 경우 :
해결책
패턴 매칭을 할 때 스칼라 컴파일러가 해석합니다. o1 c1 o2
동일합니다 c1(o1, o2)
. 그것이 이유입니다 ::
패턴 일치 내부에서도 작동합니다.
제휴하지 않습니다 StackOverflow