将List的元素作为参数传递给具有可变参数的函数

时间:2014-09-12 19:35:05

标签: function scala

我有一个名为or的函数,其定义为;

or(filters: FilterDefinition*)

然后我有一个清单:

List(X, Y, Z)

我现在需要做的是调用or,如

or(func(X), func(Y), func(Z))

正如预期的那样,列表的长度可能会发生变化。

在Scala中执行此操作的最佳方式是什么?

1 个答案:

答案 0 :(得分:46)

看一下这个例子,我将定义一个函数printme,它接受String类型的变量

def printme(s: String*) = s.foreach(println)


scala> printme(List("a","b","c"))

<console>:9: error: type mismatch;
 found   : List[String]
 required: String
              printme(List(a,b,c))

您真正需要将列表打包成:_*运算符

的参数
scala> val mylist = List("1","2","3")
scala> printme(mylist:_*)
1
2
3