与えられた例:
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
しかし、splat を使用して、varargs パラメーター以外の引数を指定することはできますか? たとえば、次のようなことをしたいと思います:
scala> def pipeItAfterIncrementing(i:Int, s:String) = (i + 1) + "|" + s
scala> val args:Tuple2[Int, String] = (1, "two")
scala> pipeItAfterIncrementing(args:_*)
それは機能しませんが、タプルであろうと他のものであろうと、単一のオブジェクトから複数の引数を提供するという同じ効果を達成する方法はありますか? タプルの長さとタイプの両方がコンパイル時にわかっている場合、これをタプルに実装できない理由はありますか?