def foo(num:Int, str:String):Int = 1
val bar = foo(3, _) // compiler complains "missing parameter type for expanded function ((x$1) => test(3, x$1))"
val baz = foo(3, _:String) // compiles fine
¿Por qué tengo que especificar explícitamente el tipo de _ cuando parece inferible desde el contexto?información de tipo de parámetro redundante en la definición de función parcialmente aplicada
EDIT: Se ha cambiado el nombre para evitar colisiones de nombres después de la sugerencia de David Soergel.
Gracias por la corrección de nombre. Pero 'def foo (num: Int) = 1; val bar = foo (_) 'compila bien. Por lo tanto, no creo que la herencia o las conversiones implícitas causen el error. – xiefei
Huh-- Lo sentimos, una reflexión más profunda sobre mi argumento implícitos no tiene sentido de todos modos. El compilador podría de hecho deducir el tipo de argumento de la barra como Cadena, y luego permitir implicitos al llamar a la barra, como de costumbre. –