Function.tupled(foo _)(getParams)
ou celui suggéré par Dave.
ÉDITER:
Pour répondre à votre commentaire:
Et si foo était le constructeur d'une classe?
Dans ce cas, cette astuce ne fonctionnera pas.
Vous pouvez écrire une méthode de fabrique dans l'objet compagnon de votre classe, puis obtenir la version tuplée de sa apply
méthode en utilisant l'une des techniques susmentionnées.
scala> class Person(firstName: String, lastName: String) {
| override def toString = firstName + " " + lastName
| }
defined class Person
scala> object Person {
| def apply(firstName: String, lastName: String) = new Person(firstName, lastName)
| }
defined module Person
scala> (Person.apply _).tupled(("Rahul", "G"))
res17: Person = Rahul G
Avec case class
es, vous obtenez un objet compagnon avec une apply
méthode gratuitement, et cette technique est donc plus pratique à utiliser avec case class
es.
scala> case class Person(firstName: String, lastName: String)
defined class Person
scala> Person.tupled(("Rahul", "G"))
res18: Person = Person(Rahul,G)
Je sais que c'est beaucoup de duplication de code mais hélas ... nous n'avons pas (encore) de macros! ;)