दिया जैसे:क्या स्काला स्प्लिट किसी भी चीज के लिए इस्तेमाल किया जा सकता है जो एक varargs नहीं है?
scala> def pipes(strings:String*) = strings.toList.mkString("|")
जो मैं आमतौर पर कॉल कर सकते हैं:
scala> pipes("foo", "bar")
res1: String = foo|bar
या एक सूचक के साथ:
scala> val args = List("a","b","c")
scala> pipes(args:_*)
res2: String = a|b|c
लेकिन मैं एक सूचक का उपयोग कुछ भी लेकिन एक के लिए तर्क प्रदान करने के लिए कर सकते हैं varargs पैरामीटर? उदाहरण के लिए: मैं की तरह कुछ करना चाहते हैं:
scala> def pipeItAfterIncrementing(i:Int, s:String) = (i + 1) + "|" + s
scala> val args:Tuple2[Int, String] = (1, "two")
scala> pipeItAfterIncrementing(args:_*)
कि काम नहीं करता है, लेकिन वहाँ किसी भी तरह से एक वस्तु से कई तर्क प्रदान करने, चाहे वह एक टपल या कुछ और हो सकता है की एक ही प्रभाव को प्राप्त करने के लिए है? क्या कोई कारण है कि इसे टुपल्स के लिए लागू नहीं किया जा सका, यह देखते हुए कि उनकी लंबाई और प्रकार दोनों संकलन-समय पर ज्ञात हैं?
अच्छा जवाब, मुझे डर है कि जेपीपी ने आपको इसे हरा दिया है;) – gfxmonk
आपको कई उत्तरों को ऊपर उठाने की अनुमति है (और प्रोत्साहित)। बस 'स्वीकार करना' एक जवाब में कम हो गया है। –
प्लस, आपका उत्तर यह भी दिखाता है कि 'tupled' 'फंक्शन' ऑब्जेक्ट पर एक के अलावा 'फंक्शन' उदाहरणों पर भी एक विधि है। –