'da garip bir davranış sergiliyor Bu kod parçasında neler olduğunu anlamaya çalışıyorum, anlamadığım bir şey olup olmadığını veya bir derleyici olup olmadığını anlamaya çalışıyorum hata veya unintuitive spec, bu iki hemen hemen aynı işlevleri tanımlayalım:Sent sıralayıcıyla eşleşen yazılan eşleşmeler Scala
def typeErause1(a: Any) = a match {
case x: List[String] => "stringlists"
case _ => "uh?"
}
def typeErause2(a: Any) = a match {
case List(_, _) => "2lists"
case x: List[String] => "stringlists"
case _ => "uh?"
}
şimdi typeErause1(List(2,5,6))
çağırırsanız o farkı anlatmak mümkün değildir tip silme ile aslında List[Int]
olsa bile çünkü "stringlists"
olsun. Ancak garip bir şekilde typeErause2(List(2,5,6))
'u çağırırsam "uh?"
elde ederim ve neden daha önce olduğu gibi List[String]
ile uyuşmadığını anlamıyorum. İkinci işlev yerine List[_]
kullanırsam, doğru bir şekilde eşleştirebilir ve bu da bana scalacda bir hata olduğunu düşünür. ? Ben Scala 2.9.1 Bu Eşleştirici bir hata var
Bu eşleştiricide bir hata var - bununla ilgili çok sayıda bilet var ve Scala 2.10.x ile başlamalıdır. –
Biletle bir bağlantınız var, bu yüzden cevap olarak sizi seçebilir miyim? – ilcavero
Dediğim gibi, maççıyla ilgili çok fazla bilet var ve bu özel davayı kapsayanlar için özellikle avlanma konusunda özellikle ilgilenmiyorum. –