将Seq[String]转换为String*

4

我有一个接受String*作为参数的函数。现在我正在实现另一个函数,它接受Seq[String](或字符串数组)作为参数,但需要使用该参数调用先前的函数。是否有办法进行转换?

def foo (s: String*) = {
    ...
}

def callFoo (s: Seq[String]) = {
    foo (s)     // this throws an error
}

foo函数可以通过foo("string1", "string2", "string3")的方式进行调用。但我只想通过调用callFoo(Seq[String])函数并从foo()获取结果。

1个回答

12

您可以使用_*运算符将您的Seq适应于foo期望的可变参数列表,方法如下:

def callFoo (s: Seq[String]) = {
    foo (s: _*)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接