एक फ़ंक्शन मिला जो तीन तर्क लेता है।कार्य तर्क के रूप में tuple को कैसे पास करें
f(a, b, c) = # do stuff
और एक अन्य कार्य जो टुपल देता है।
g() = (1, 2, 3)
मैं कार्य तर्क के रूप में टुपल कैसे पास करूं?
f(g()) # ERROR
एक फ़ंक्शन मिला जो तीन तर्क लेता है।कार्य तर्क के रूप में tuple को कैसे पास करें
f(a, b, c) = # do stuff
और एक अन्य कार्य जो टुपल देता है।
g() = (1, 2, 3)
मैं कार्य तर्क के रूप में टुपल कैसे पास करूं?
f(g()) # ERROR
nanashi के उदाहरण का उपयोग करना, सुराग त्रुटि है जब आप कॉल f(g())
julia> g() = (1, 2, 3)
g (generic function with 1 method)
julia> f(a, b, c) = +(a, b, c)
f (generic function with 1 method)
julia> g()
(1,2,3)
julia> f(g())
ERROR: no method f((Int64,Int64,Int64))
यह बताता है कि इस यह खोल के बिना f
को इनपुट के रूप में टपल (1, 2, 3)
देता है। अनपॅक करने के लिए इसे एक इलिप्सिस का उपयोग करें।
julia> f(g()...)
6
जूलिया के मैनुअल में प्रासंगिक अनुभाग यहाँ है: http://julia.readthedocs.org/en/latest/manual/functions/#varargs-functions
उपयोग apply
।
julia> g() = (1,2,3)
g (generic function with 1 method)
julia> f(a,b,c) = +(a,b,c)
f (generic function with 1 method)
julia> apply(f,g())
6
अगर यह मदद करता है तो हमें बताएं।
फ्लॉप पता tuples splatted किया जा सकता है, धन्यवाद! – AJcodez
मैं 'एफ (जी() ...) '' '' लागू' पसंद करता हूं, और मुझे लगता है कि जूलिया में पहला मुहावरेदार है। –
@AJcodez: क्या मेरे उत्तर को स्वीकृत के रूप में निकालना संभव है और इसके बजाय उत्तर के रूप में चिह्नित करें? मेरा मानना है कि यह वैसे भी बेहतर है। – Manhattan