एक ट्यूपल तर्क को सबसे अच्छा तरीका कैसे पास किया जाए?एक ट्यूपल तर्क को सबसे अच्छा तरीका कैसे पास किया जाए?
उदाहरण:
def foo(...): (Int, Int) = ...
def bar(a: Int, b: Int) = ...
अब मैं bar
को foo
के उत्पादन में पारित करने के लिए करना चाहते हैं। इस के साथ प्राप्त किया जा सकता है:
val fooResult = foo(...)
bar(fooResult._1, fooResult._2)
यह दृष्टिकोण, एक सा बदसूरत लग रहा है, खासकर जब हम n > 2
के साथ एक n
-tuple के साथ सौदा। इसके अलावा हमें foo का परिणाम अतिरिक्त मूल्य में संग्रहीत करना होगा, अन्यथा foo
को bar(foo._1, foo._2)
का उपयोग करके एक से अधिक बार निष्पादित किया जाना है।
क्या टुपल को तर्क के रूप में पारित करने का कोई बेहतर तरीका है?
val bar2 = (bar _).tupled // or Function.tupled(bar _)
bar2
(Int, Int)
(एक ही bar
के रूप में तर्क) के एक टपल लेता है:
संभावित डुप्लिकेट [एक टुपल पर फ़ंक्शन कैसे लागू करें?] (Http://stackoverflow.com/questions/1987820/how-to-apply-a-function-to-a-tuple) –