यह स्काला पर जीवन का एक दुखद तथ्य है कि यदि आप एक सूची [इंट] को तत्काल भेजते हैं, तो आप यह सत्यापित कर सकते हैं कि आपका उदाहरण एक सूची है, और आप यह सत्यापित कर सकते हैं कि इसका कोई अलग-अलग तत्व एक इंट है, लेकिन यह नहीं कि यह सूची है [ इंट], जैसा कि आसानी से सत्यापित किया जा सकता है:
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?") ^
मुझे आपका प्रश्न और उत्तर बहुत मददगार लगे, लेकिन मुझे यकीन नहीं है कि यह अद्यतन चेतावनी पाठकों के लिए उपयोगी है।