Замена параметров функции вектором - PullRequest
3 голосов
/ 17 июня 2019

В Scala, если у меня есть функция f (X, Y, Z), можно ли передать переменную W, которая будет представлять (X, Y, Z), чтобы я мог использовать f (W) вместо f (X, Y, Z)?Если так, как это можно сделать?

1 Ответ

3 голосов
/ 17 июня 2019

Если вы хотите передать кортеж или класс дела вместо трех параметров. Тогда да, вы можете.

Во-первых, если это функция , вы можете просто: f.tupled(tuple).
Если это метод , тогда: (m _).tupled(tuple). _ (это в основном то же самое, но с использованием eta-раскрытия, чтобы превратить метод в функцию).

Если у вас есть класс падежа вместо кортежа, вы можете превратить его экземпляр в кортеж с помощью этого: W.unapply(w).get (где W - это объект-компаньон класс case, а w - экземпляр) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...