4
에서 이기종 유형의 경로 의존적 유형을 반환 :이 주어 패턴 일치
def test(in: Request): in.Result = in match {
case i: IntRequest => 1234
case _ => sys.error(s"Unsupported request $in")
}
:
trait Request {
type Result
}
trait IntRequest extends Request {
type Result = Int
}
내가 반환에 대한 스칼라 컴파일러가 행복 할 수있는 방법을 패턴 일치를 기반으로 경로 의존의 형태
오류 :
<console>:53: error: type mismatch;
found : Int(1234)
required: in.Result
case i: IntRequest => 1234
^
예, 가능성이 있습니다. 그러나 나는 이것들을'Map'에 저장하고 있기 때문에, 컴파일러 관점에서 타입 파라미터가 손실됩니다. 그래서 여기에 유형 멤버를 사용하고 싶습니다. –