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
Perché devo specificare esplicitamente il tipo di _ quando sembra inferirabile dal contesto?informazioni di tipo ridondanti sui parametri nella definizione di funzione parzialmente applicata
MODIFICA: Ridenominato per evitare la collisione del nome in seguito al suggerimento di David Soergel.
Grazie per la correzione del nome. Ma 'def foo (num: Int) = 1; val bar = pippo (_) 'compila bene. Quindi non penso che l'ereditarietà o le conversioni implicite causino l'errore. – xiefei
Huh-- scusa, per ulteriori riflessioni la mia argomentazione sugli impliciti non ha comunque senso. Il compilatore potrebbe infatti solo dedurre il tipo dell'argomento della barra da String e quindi consentire impliciti quando si chiama la barra, come al solito. –