मैं एक समारोहवैरैडिक तर्कों के साथ फ़ंक्शन को कॉल करने के लिए स्कैला वाक्यविन्यास क्या है लेकिन नामांकित तर्कों के साथ?
def f(a:Int = 0, b:String = "", c:Float=0.0, foos: Foo*) { ... }
सूचना कुछ मानकों के लिए डिफ़ॉल्ट तर्क का उपयोग किया है कहो। आमतौर पर, मूलभूत मूल्यों का उपयोग करना, तुम इतनी तरह नामित मानकों के साथ एक समारोह आह्वान:
val foo = Foo("Foo!")
f(foos = foo)
इस वाक्य रचना काम करता है क्योंकि मैं केवल एक foo
साथ विधि लागू कर रहा हूँ। हालांकि, अगर मेरे पास दो या अधिक
val foo1 = Foo("Foo!")
val foo2 = Foo("Bar!")
f(foos = ...)
यह इतना स्पष्ट नहीं है कि यहां क्या खिलाया जाना चाहिए। Seq(foo1,foo2)
और Seq(foo1,foo2):_*
चेक टाइप न करें।
और क्या है, मैं इसे foo
एस के साथ कैसे कॉल कर सकता हूं?
// All out of foos!
f(foos = ...)
इस मामले के लिए, खाली कोष्ठकों (f()
) के साथ समारोह काम नहीं करता है बुला।
धन्यवाद!
स्केल का कौन सा संस्करण आप उपयोग कर रहे हैं? आरपीएल में एफ को परिभाषित करने का प्रयास 2.9.2 के साथ मुझे ": 9: त्रुटि: एक * * 'के साथ पैरामीटर अनुभाग - पैरामीटर को डिफ़ॉल्ट तर्क होने की अनुमति नहीं है" –
मैं इसे 2.9.2 पर देख रहा हूं कुंआ। हालांकि, मैं जिस वास्तविक कोड को संकलित कर रहा हूं वह 2.9.1 चल रहा है, जहां स्पष्ट रूप से यह कानूनी है। – fatuhoku