Scala:将元组列表展开为元组的可变长度参数列表
我对如何将List/Seq/Array扩展为变长参数列表感到困惑 假设我有接受元组的test_func函数: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参考资料,我有一个强烈的印
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的测验?删除了我的评论。