Функция, которую вы ищете, называется destructuring и в общем виде выходит далеко за рамки простой распаковки кортежей.Я часто ловил себя на том, что желаю, чтобы это было в Scala, поскольку это такое естественное расширение синтаксиса сопоставления с образцом:
def first((f: Int, l: Int)) = f
def displayName(Person(first, last)) = last + ", " + first
Деструктурирование (вроде) присутствует в виде переменной/ значения:
val (f, l) = tuple
val Person(first, last) = person
К сожалению, существуют некоторые тип безопасность проблемы вокруг таких определений, которые, я думаю, делают вас маловероятным, что выскоро мы увидим разрушение в списках параметров.