Преобразование Seq [String] в String * - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть функция, которая принимает 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 Ответ

0 голосов
/ 06 ноября 2018

Вы можете адаптировать свой Seq к списку аргументов переменной, который foo ожидает, используя оператор _*, следующим образом:

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