for*_*ker 20 functional-programming scala
我很困惑如何将List/Seq/Array扩展为可变长度参数列表.
鉴于我有test_func函数接受元组:
scala> def test_func(t:Tuple2[String,String]*) = println("works!")
test_func: (t: (String, String)*)Unit
Run Code Online (Sandbox Code Playgroud)
当我传递元组时,哪个有效:
scala> test_func(("1","2"),("3","4"))
works!
Run Code Online (Sandbox Code Playgroud)
从阅读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")))
^
Run Code Online (Sandbox Code Playgroud)
还有一次绝望的尝试:
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)
Run Code Online (Sandbox Code Playgroud)
如何将List/Seq/Array扩展为参数列表?
先感谢您!
Pri*_*ley 47
你需要添加:_*.
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!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13574 次 |
| 最近记录: |