ejemplo dado:¿Se puede usar scala splat para cualquier cosa que no sea varargs?
scala> def pipes(strings:String*) = strings.toList.mkString("|")
cual puedo llamar normalmente:
scala> pipes("foo", "bar")
res1: String = foo|bar
o con un splat:
scala> val args = List("a","b","c")
scala> pipes(args:_*)
res2: String = a|b|c
Pero puedo utilizar un splat de proporcionar argumentos para nada más que una ¿parámetro varargs? por ejemplo me gustaría hacer algo como:
scala> def pipeItAfterIncrementing(i:Int, s:String) = (i + 1) + "|" + s
scala> val args:Tuple2[Int, String] = (1, "two")
scala> pipeItAfterIncrementing(args:_*)
eso no funciona, pero ¿hay alguna manera de conseguir el mismo efecto de proporcionar múltiples argumentos de un solo objeto, ya sea una tupla o alguna otra cosa? ¿Hay alguna razón para que esto no pueda implementarse para tuplas, dado que tanto su longitud como sus tipos son conocidos en tiempo de compilación?
buena respuesta, me temo que JPP simplemente te adelantó;) – gfxmonk
Se te permite (y te alienta) a enviar múltiples respuestas. Solo "aceptar" se reduce a una respuesta. –
Además, su respuesta también muestra que 'tupled' también es un método en instancias' Function' además del que está en el objeto 'Function'. –