Function.tupled(foo _)(getParams)hoặc một trong những gợi ý của Dave.
BIÊN TẬP:
Để trả lời bình luận của bạn:
Điều gì sẽ xảy ra nếu foo là hàm tạo của một số lớp?
Trong trường hợp đó, thủ thuật này sẽ không hoạt động.
Bạn có thể viết một phương thức gốc trong đối tượng đồng hành của lớp của mình và sau đó lấy phiên bản bộ của applyphương thức đó bằng một trong các kỹ thuật đã nói ở trên.
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
Với case classes, bạn nhận được một đối tượng đồng hành với một applyphương thức miễn phí, và do đó kỹ thuật này thuận tiện hơn khi sử dụng với case classes.
scala> case class Person(firstName: String, lastName: String)
defined class Person
scala> Person.tupled(("Rahul", "G"))
res18: Person = Person(Rahul,G)
Tôi biết đó là rất nhiều mã trùng lặp nhưng than ôi ... chúng tôi chưa có macro (chưa)! ;)