scala Ленивый почтовый индекс вариантов Varargs для варианта кортежа - PullRequest
1 голос
/ 28 января 2020

Я хочу объединить несколько опций с опцией кортежа:

val maybeA: Option[Int] = ...
val maybeB: Option[String] = ...

val combined: Option[(Int,String)] = combine(maybeA, maybeB)

Есть много способов сделать это, давайте go с:

def combined[X,Y](maybeA: Option[X], maybeB: Option[Y]) = maybeA.zip(maybeB).headOption

и это отлично.

теперь мне интересно, можно ли это как-то динамически сделать для varargs и кортежа? как будет выглядеть подпись?

def combine[???](options: Option[?]*): Tuple[?]
...