将列表作为varargs Scala传递

时间:2013-12-08 03:18:01

标签: list scala functional-programming variadic-functions

如何将List[Any] List[Any]作为参数传递给List.concat?我的代码是:

List.concat((a filter (x => x.getClass == a.getClass)): _*)

其中aList[Any],而(a filter (x => x.getClass == a.getClass))应该成为列表列表。我得到的错误是type mismatch; found List[Any] required: Seq[Traversable[Any]]

是否有传递参数列表的元素,或将列表转换为序列?谢谢。

1 个答案:

答案 0 :(得分:0)

您对: _*的意图是什么?删除它,你的代码应该工作。

您实际上可以将List [Any]传递给concat,如下所示。

val list1 = List("Abby", "Jim", "Tony")
val list2 = List[Any](90,"Tom")
val ret = List.concat(list1,list2)

您的代码问题,我想是: _*。另一个问题是a filter (x => x.getClass == a.getClass),元素与容器的类型很小,在你的情况下是List。这是你的真实意图吗?您希望List [Any]包含类型为List [Any]的元素吗?

以下代码有效,我在http://scalass.com/tryout验证了它们。

val list = List[Any](90,"Tom")
val r = List.concat((list filter (x => x.getClass == "".getClass)))