給出例如:scala splat可以用於任何不是可變參數的東西嗎?
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
,但我可以用圖示爲任何東西,但提供的參數可變參數? e.g我想這樣做:
scala> def pipeItAfterIncrementing(i:Int, s:String) = (i + 1) + "|" + s
scala> val args:Tuple2[Int, String] = (1, "two")
scala> pipeItAfterIncrementing(args:_*)
這並不工作,但有什麼辦法,實現從單一對象提供多個參數,無論它是一個元組或其他東西的同樣的效果?考慮到它們的長度和類型在編譯時是已知的,是否有任何理由不能爲元組實現呢?
好的答案,恐怕JPP只是擊敗了你;) – gfxmonk 2011-04-13 13:01:04
你被允許(和鼓勵)upvote多個答案。只是「接受」就減少爲一個答案。 – 2011-04-13 13:08:43
另外,你的回答也表明'tupled'除了'Function'對象外還是'Function'實例的一個方法。 – 2011-04-13 13:13:17