Это вопрос, связанный с Scala.Передача всех аргументов функции как одного массива
Предположим, что у вас есть функция (которую вы не можете изменить) несколько входов, например:
def test(x1: Int, x2:Int, x3: Int, x4: Int, x5: Int) = {
//Some logic
}
И предположим, что у вас есть все входы для этой функции в одном массиве, например:
val inputs = Array(1, 2, 3, 4, 5)
Есть ли способ вызвать test
с помощью этого единственного массива входов без явной вставки отдельных элементов массива (как в test(inputs(0),inputs(1),inputs(2),inputs(3),inputs(4))
)?
Это особенно важно для случая, когда я не знаю количества входов и количества элементов в массиве заранее (но знаю, что они совпадают).
Я использую несколько функций, написанных кем-то другим, которые соответствуют определенным таблицам в базе данных SQL (количество аргументов для каждой из этих функций совпадает с количеством столбцов в соответствующих таблицах). Я обращаюсь к таблицам через JDBC, а затем хочу запустить эти функции для обработки результатов моих запросов. Возможно ли, по крайней мере, создать внутреннее расширение «входов» на «входы (0), входы (1), ...'? Например. что-то вроде строк 'test (for (i <- input) i)'? – verse
@verse вы считали, что просто не делаете этого? Честно говоря, это звучит как самый необоснованный подход ко всему, что я когда-либо слышал. Выяснение того, как передать массив в качестве аргументов этой функции, является наименьшим из ваших забот. Вы спрашивали кого-то, почему они так мало уважают вас? – LuxuryMode