Considérons la fonction suivante:inférence de type de fonction partielle dans Scala
def printPfType[T](pf:PartialFunction[T, _])(implicit m:Manifest[T]) = {
println(m.toString)
}
Puis-je définir la classe de test suivant:
case class Test(s:String, i:Int)
Je ne peux pas écrire ceci:
printPfType {
case Test(_,i) => i
}
parce que le compilateur ne peut pas déduire le premier type paramétrique de la fonction partielle. Je dois préciser explicitement:
printPfType[Test] {
case Test(_,i) => i
}
Mais le type Test
apparaît deux fois. Y a-t-il une technique pour éviter cela? Comment puis-je aider le type inferer à éviter le doublon?
Merci beaucoup. La spécification est claire! – asayn
Vous êtes les bienvenus :) –