Function.tupled(foo _)(getParams)
या डेव द्वारा सुझाया गया।
संपादित करें:
आपकी टिप्पणी का जवाब देने के लिए:
क्या होगा यदि फू कुछ वर्ग का निर्माता है?
उस स्थिति में, यह ट्रिक काम नहीं करेगी।
आप अपनी कक्षा के साथी ऑब्जेक्ट में एक फ़ैक्टरी विधि लिख सकते हैं और फिर apply
पूर्वोक्त तकनीकों में से एक का उपयोग करके इसकी विधि का टुप्ड संस्करण प्राप्त कर सकते हैं।
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
case class
तों के साथ आपको apply
मुफ्त में एक विधि के साथ एक साथी वस्तु मिलती है , और इस तरह यह तकनीक case class
तों के साथ उपयोग करने के लिए अधिक सुविधाजनक है ।
scala> case class Person(firstName: String, lastName: String)
defined class Person
scala> Person.tupled(("Rahul", "G"))
res18: Person = Person(Rahul,G)
मुझे पता है कि कोड का एक बहुत दोहराव है, लेकिन अफसोस ... हमारे पास मैक्रोज़ (अभी तक) नहीं है! ;)