Parametry „Spread” w Scali?

Czy istnieje sposób na wywołanie funkcji Scala, która pobiera indywidualne parametry,podano tablicę (podobny do JavaScriptSpready w ECMAScript 6)?

ys = [10.0, 2.72, -3.14]
f(x, ...ys);

Najczystszą składnią byłoby:

f(1, ys)

ale to nie wydaje się możliwe. Parzystyf(1, ys:_*) nie działa (i nie działa)f(ys:_*), ponieważ kompilator zgłasza zbyt mało parametrów - tylko pierwszy jest wypełniany).

Przykład:

def f (a:Int, b:Float, c:Float, d:Float): String

val x  = 1
val ys = List(10.0, 2.72, -3.14)  // note: non-Objects
val result = f(x, ys)  // intuitive, but doesn't work

Przypadek użycia: wstrzykiwanie danych testowych (z kolekcji) do istniejących metod, które akceptują poszczególne parametry. Ponieważ są to przypadki testowe, jest całkiem w porządku, jeśli #params w ys nie pasuje do siebie i daje błąd wykonania lub niepoprawny wynik.

Pytanie brzmi, czy Scala pozwala na czystą składnię wywołania funkcji, która pobiera indywidualne parametry, biorąc pod uwagę zbiór parametrów - a nie to, czy jest to dobryprojekt (chociaż opinie są z pewnością mile widziane).

questionAnswers(2)

yourAnswerToTheQuestion