scala> class A
defined class A
scala> class B
defined class B
scala> val a: A = new A
a: A = [email protected]
scala> a match {
| case _: B => println("unlikely")
| case _ => println("no match")
| }
no match
위 예제에서 컴파일러는 하나의 사례가 결코 일치 할 수 없다고 말하지 않아야합니까? 약간 더 복잡한 예가 최근에 나를 잡아 냈습니다. 컴파일러에 의해 잡혀 야하는 불필요한 버그 같은 느낌을 받았습니다.스칼라에서 일치하는 형식에 대한 더 나은 검사
편집 :
그냥 질문에 대한 명확합니다. 내가 볼 수없는 몇 가지 이유로 스칼라에서는 불가능한 일일까요? (유형이 제네릭을 사용하고 유형 삭제가 문제를 일으키는 지 이해할 수 있지만 이것은 매우 직설적입니다.) 이것이 불가능하지 않으면 이것이 스칼라에없는 합법적 인 이유가 있습니까? 그렇지 않은 경우 언제 추가됩니까? ;)
놀라워요! 나는 스카우트를 가르쳐 준 사람으로부터 내 대답을 찾아 내야한다. Thx stackoverflow! – Kami