Scala:将元组列表展开为元组的可变长度参数列表

Scala:将元组列表展开为元组的可变长度参数列表,scala,functional-programming,Scala,Functional Programming,我对如何将List/Seq/Array扩展为变长参数列表感到困惑 假设我有接受元组的test_func函数: scala> def test_func(t:Tuple2[String,String]*) = println("works!") test_func: (t: (String, String)*)Unit 当我传递元组时,它会起作用: scala> test_func(("1","2"),("3","4")) works! 通过阅读Scala参考资料,我有一个强烈的印

我对如何将List/Seq/Array扩展为变长参数列表感到困惑

假设我有接受元组的test_func函数:

scala> def test_func(t:Tuple2[String,String]*) = println("works!")
test_func: (t: (String, String)*)Unit
当我传递元组时,它会起作用:

scala> test_func(("1","2"),("3","4"))
works!
通过阅读Scala参考资料,我有一个强烈的印象,即以下内容也可以使用:

scala> test_func(List(("1","2"),("3","4")))
<console>:9: error: type mismatch;
 found   : List[(java.lang.String, java.lang.String)]
 required: (String, String)
              test_func(List(("1","2"),("3","4")))
                        ^
scala>test_func(列表((“1”、“2”)、(“3”、“4”))
:9:错误:类型不匹配;
找到:列表[(java.lang.String,java.lang.String)]
必需:(字符串,字符串)
测试函数(列表((“1”、“2”)、(“3”、“4”))
^
还有一次绝望的尝试:

scala> test_func(List(("1","2"),("3","4")).toSeq)
<console>:9: error: type mismatch;
 found   : scala.collection.immutable.Seq[(java.lang.String, java.lang.String)]
 required: (String, String)
              test_func(List(("1","2"),("3","4")).toSeq)
scala>test_func(列表((“1”、“2”)、(“3”、“4”)。toSeq)
:9:错误:类型不匹配;
找到:scala.collection.immutable.Seq[(java.lang.String,java.lang.String)]
必需:(字符串,字符串)
测试功能(列表((“1”、“2”)、(“3”、“4”)。toSeq)
如何将List/Seq/Array展开为参数列表


提前谢谢你

您需要添加
:*

scala> test_func(List(("1","2"),("3","4")):_*)
works!
scala> test_func(Seq(("1","2"),("3","4")):_*)
works!
scala> test_func(Array(("1","2"),("3","4")):_*)
works!

谢谢你,王子!有效:)一个简短的问题:
\u
这里是引用列表元素类型,即Tuple?我不会说
\u
引用了任何东西。相反,
.*
是一种类型注释,它将
t
标记为序列参数。@elbowich:+1。对我误解了OP的测验?删除了我的评论。