스칼라에서 슬픈 사실은 List [Int]를 인스턴스화하면 인스턴스가 List인지 확인할 수 있고, 인스턴스의 개별 요소가 Int인지 확인할 수 있다는 것입니다. Int]로 쉽게 확인할 수 있습니다.
scala> List(1,2,3) match {
| case l : List[String] => println("A list of strings?!")
| case _ => println("Ok")
| }
warning: there were unchecked warnings; re-run with -unchecked for details
A list of strings?!
-unchecked 옵션은 유형 삭제에 대해 책임을지게합니다.
scala> List(1,2,3) match {
| case l : List[String] => println("A list of strings?!")
| case _ => println("Ok")
| }
<console>:6: warning: non variable type-argument String in type pattern is unchecked since it is eliminated by erasure
case l : List[String] => println("A list of strings?!")
^
A list of strings?!
그 이유는 무엇이며 어떻게 해결해야합니까?
scala 2.10.2
대신이 경고가 표시되었습니다. <console>:9: warning: fruitless type test: a value of type List[Int] cannot also be a List[String] (but still might match its erasure) case list: List[String] => println("a list of strings?") ^
귀하의 질문과 답변이 매우 도움이된다고 생각하지만이 업데이트 된 경고가 독자에게 유용한 지 확실하지 않습니다.